iPhone Safari浏览器,更改#hash URL然后Javascript警报消息框停止工作

时间:2018-01-19 09:15:31

标签: javascript iphone browser safari alert

我在iPhone Safari中运行一个网页。该页面有一个按钮。单击它,将显示一个警告消息框。还行吧。然后,我通过在地址栏中输入来更改或添加#hash URL ,然后,警报消息框停止工作。我点击按钮,没有任何反应。没有javascript错误但没有警告消息框。

video recording of the issue

此iOS Safari已知问题吗?

请分享您的想法和您提出的解决方案。非常感谢!



$(".button").click(function () {
  alert('Hello');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<input class="button" type="button" value="alert" />
&#13;
&#13;
&#13;

注意

  • 这不是我的代码所致。我也测试了 Here
  • 我已在最新的iOS版本中测试过。
  • Javascript本身正在运作
  • 不是JQuery问题,普通JS代码也不起作用
  • 警告框正在iPhone Chrome或其他浏览器中使用

4 个答案:

答案 0 :(得分:0)

从未在URL内使用#,而不是对锚点的引用,但是对此我不是100%肯定的... 我认为在网址中添加#并按Enter不会重新加载页面。网址中的#abc确实告诉浏览器跳转到名为abc的锚点,因此这将永远不会重新加载页面或触发某些JavaScript。如果您不想跳转/滚动到实际页面的某个锚定站点,请不要在网址中使用#。那应该可以解决您的问题。

答案 1 :(得分:0)

URL中的#是片段标识符。期望网址示例后面有一些内容:www.yourpage.com/foo.html#bar。这样就可以在页面中寻找条形片段。该页面将不会重新加载。

This might help w3 fragments

答案 2 :(得分:0)

好吧,这可能是由于您没有创建另一个http request,而是指示浏览器转到#abc的所述哈希值。

如果您的某类元素具有该ID,它将跳到页面的该部分。

示例:

<a href="#abc">click to jump down to my section</a>

<p id="abc">my section</p>

我假设当您在网址中键入#abc时,它将在寻找该内容。当然不存在。

除此之外,我不确定。

答案 3 :(得分:0)

可能与Alert, confirm, and prompt not working after using History API on Safari, iOShttps://forums.developer.apple.com/thread/65054

相关

似乎alert()变成了undefined。建议的解决方法是改用自定义弹出窗口。