我在iPhone Safari中运行一个网页。该页面有一个按钮。单击它,将显示一个警告消息框。还行吧。然后,我通过在地址栏中输入来更改或添加#hash URL,然后,警报消息框停止工作。我点击按钮,没有任何反应。没有javascript错误但没有警告消息框。
这个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" />
注意:
可能与Alert, confirm, and prompt not working after using History API on Safari, iOS和https://forums.developer.apple.com/thread/65054有关
似乎alert()
成为undefined
。建议的解决方法是使用自定义弹出窗口。
从来没有在网址中使用#
而不是作为锚点的引用,但我不是100%确定这个...我认为在网址中添加#
并按Enter不会重新加载页面。 url中的#abc
确实告诉浏览器跳转到名为abc
的锚点,因此这将永远不会重新加载页面或触发一些javascript。如果您不想跳转/滚动到某个锚点,那么请不要在网址中使用#
。那应该可以解决你的问题。
url中的#是片段标识符。在网址示例之后,我们期待一些事情:www.yourpage.com/foo.html#bar。这使得它在页面中查找条形片段。页面不会重新加载。
好吧,这可能是因为你没有制作另一个http request
,而是指示浏览器转到(例如)#abc的哈希值。
如果你有一个像这样的元素与该id的元素,它将跳转到页面的该部分。
例:
<a href="#abc">click to jump down to my section</a>
<p id="abc">my section</p>
我假设当你在网址中键入#abc时,它会寻找它。当然,哪个不存在。
除此之外,我不完全确定。