当通过 iOS Twitter 浏览器访问时,为什么 javascript 不在网页上执行?
Why is javascript not executing on a web page when accessed via iOS Twitter browser?
我完全被难住了,我确信这以前是有效的。
我有一个简单的网页,在 div 中包含单词 "hello",它在加载时做了两件事:
1) 警报“2”
2) 将 div 的文本更改为 "bye"
所有原版 Javascript,没有库。
这在 Chrome、IE、FF、Safari 上运行良好(如您所料)。如果我在 iOS Twitter 应用程序(最新版本)中点击 link 到此网页,这两种情况都不会发生。在我看来 Javascript 根本没有被执行,但这怎么可能呢?有没有其他人遇到过这种情况?
更新
事实上,普通 Javascript 会起作用。警报测试具有误导性——我相信它已被禁用,这就是它不起作用的原因。然而,JQuery 将不起作用 - 可能与 $ 引用冲突有关。
更新 2
问题现在已经转移了 - 我最初的假设并不完全正确。
以下网页代码有效:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<style>
#test {
color:red;
}
</style>
<script>
window.onload = function () {
document.getElementById('test').innerHTML = 'vanilla javascript worked';
$("#test").text("Jquery worked");
}
</script>
</head>
<body>
<div id="test">
hello
</div>
</body>
</html>
以下代码无效。我脚本的路径是正确的并且可以在普通浏览器上运行,但是在 iOS Twitter 应用内浏览器中时,本地脚本似乎无法加载:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="~/Scripts/jquery-2.1.1.js" type="text/javascript"></script>
<style>
#test {
color:red;
}
</style>
<script>
window.onload = function () {
document.getElementById('test').innerHTML = 'vanilla javascript worked';
$("#test").text("Jquery worked");
}
</script>
</head>
<body>
<div id="test">
hello
</div>
</body>
</html>
我已经测试了通过 Facebook 访问网页的问题,无论哪种方式都可以正常工作。问题仅在 iOS.
上与 Twitter 浏览器有关
我试过使用我的脚本的绝对路径,但也不起作用。
更新
此问题不在 iPad 上。仅 iPhone。因为它之前工作正常,我会说这是 iPhone Twitter 应用程序最新版本的一个错误。将等待 Twitter 的修复。
结果是我正在将来自 Twitter 的所有请求重写到预呈现的 html 实例 (brombone)。所以当它在寻找那个文件时,它实际上是在寻找 brombone 服务器而不是我的。我把重写出来了,现在好了。
与我正在做的事情完全无关,但我还是解决了它,可能会提醒那些有类似问题的人跳出框框检查服务器设置等...
我完全被难住了,我确信这以前是有效的。
我有一个简单的网页,在 div 中包含单词 "hello",它在加载时做了两件事:
1) 警报“2”
2) 将 div 的文本更改为 "bye"
所有原版 Javascript,没有库。
这在 Chrome、IE、FF、Safari 上运行良好(如您所料)。如果我在 iOS Twitter 应用程序(最新版本)中点击 link 到此网页,这两种情况都不会发生。在我看来 Javascript 根本没有被执行,但这怎么可能呢?有没有其他人遇到过这种情况?
更新
事实上,普通 Javascript 会起作用。警报测试具有误导性——我相信它已被禁用,这就是它不起作用的原因。然而,JQuery 将不起作用 - 可能与 $ 引用冲突有关。
更新 2
问题现在已经转移了 - 我最初的假设并不完全正确。
以下网页代码有效:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<style>
#test {
color:red;
}
</style>
<script>
window.onload = function () {
document.getElementById('test').innerHTML = 'vanilla javascript worked';
$("#test").text("Jquery worked");
}
</script>
</head>
<body>
<div id="test">
hello
</div>
</body>
</html>
以下代码无效。我脚本的路径是正确的并且可以在普通浏览器上运行,但是在 iOS Twitter 应用内浏览器中时,本地脚本似乎无法加载:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="~/Scripts/jquery-2.1.1.js" type="text/javascript"></script>
<style>
#test {
color:red;
}
</style>
<script>
window.onload = function () {
document.getElementById('test').innerHTML = 'vanilla javascript worked';
$("#test").text("Jquery worked");
}
</script>
</head>
<body>
<div id="test">
hello
</div>
</body>
</html>
我已经测试了通过 Facebook 访问网页的问题,无论哪种方式都可以正常工作。问题仅在 iOS.
上与 Twitter 浏览器有关我试过使用我的脚本的绝对路径,但也不起作用。
更新
此问题不在 iPad 上。仅 iPhone。因为它之前工作正常,我会说这是 iPhone Twitter 应用程序最新版本的一个错误。将等待 Twitter 的修复。
结果是我正在将来自 Twitter 的所有请求重写到预呈现的 html 实例 (brombone)。所以当它在寻找那个文件时,它实际上是在寻找 brombone 服务器而不是我的。我把重写出来了,现在好了。
与我正在做的事情完全无关,但我还是解决了它,可能会提醒那些有类似问题的人跳出框框检查服务器设置等...