gpt4 book ai didi

javascript - Safari iOS 不加载 Javascript 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:43 40 4
gpt4 key购买 nike

由于最近的 security bug,我刚刚升级了我的 iOS ,我发现我的网站无法再在我的手机上正常加载!

我已将问题归结为一个简化的示例...

index.html =

<html>
<head>
<title>Demo</title>
<meta name="description" content="Test of basic Javascipt function">
<script src="demo.js"></script>
</head>
<body class="body">
<div id="main">
</div>
</body>
</html>

演示.js =

var i = 0;

function update() {
'use strict';
document.getElementById("main").innerHTML = i;
i = i + 1;
}
setInterval(update, 1000);

在我的桌面上这会产生一个迭代计数,但是当在我的手机上使用 Safari 查看时(Mobile/12G34 Safari/601.1)javascript 文件根本不会加载???? Javascript 文件甚至没有显示在我通过 USB 网络共享的 WebInspector 的“所有资源”选项卡下。

建议?

谢谢,

比尔


编辑:这个问题没有得到回应,但我仍在努力解决这个问题。我找到了更多信息。

使用 Safari WebInspector 我发现 javascript 没有加载,因为...

Blocked script execution in 'http://192.168.133.1/demo.html' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.

自从我在 esp8266 上通过一个简单的网络服务器提供这个页面,这条消息启发了我调整我的 HTTP header 。 HTTP header 似乎没问题。

我无法弄清楚这个 html 页面首先是如何被沙盒化的,以及如何“允许脚本”以便我可以在 Safari Mobile 中运行我的脚本。

如有任何帮助,我们将不胜感激。

最佳答案

在为我的 Arduino 项目实现 Web 服务器功能时,我遇到了完全相同的问题。我的 Web 服务器实现在桌面浏览器和 iOS (9.3.5) 中的 Chrome 上运行良好。我在 iOS 中使用 Firefox (5.1 (1)) 和 Safari 时都遇到了问题。我的网页使用包括 jQuery 在内的脚本。脚本用于使用 AJAX/JSON 从 Arduino 传输数据。

问题出在我用作实现基础的示例中。在这些示例中,Web 服务器在 OK 情况下对浏览器的 HTTP GET 请求的回复除了实际请求的文档之外不包含任何其他内容。在这种情况下,Web 浏览器认为 Web 服务器正在使用 HTTP/0.9。此外,缺少 Content-Type。大多数浏览器都可以“猜测”出回复的 Content-Type 是什么,尽管它不包括在内。

在我的例子中,Safari 报告了两个错误

  1. http://myip 中阻止脚本执行因为文档的框架被沙盒化并且未设置“允许脚本”权限。
  2. 沙盒 http://myip/image.jpg ' 因为它使用的是 HTTP/0.9。

第一个错误导致浏览器拒绝加载我的 javascript 和 jquery.js。当然在那之后 AJAX 将不起作用。桌面版 Firefox 也提示格式不正确的 JSON 回复,但仍然运行良好。

我只是简单地更改了实现,以便 HTTP 回复将始终在实际数据之前包含 HTTP 版本、状态代码和 Content-Type。例如,当浏览器发送请求 GET/HTTP/1.1 时,服务器不仅发送默认网页,还包括

HTTP/1.1 200 OK
Content-Type: text/html

之后所有错误都消失了。似乎新版本的 Safari 不喜欢接收 HTTP/0.9,并且会将它返回的内容沙盒化。

关于javascript - Safari iOS 不加载 Javascript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534765/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com