在Android上的Chrome上,data
URI页面上的JavaScript包含以下HTML
<html>
<head>
</head>
<body>
<a href="javascript:alert('Hi.');">Say hi</a>
</body>
</html>
会导致一个对话框正在说“嗨。”显示当我点击“说嗨”。在iOS上的Chrome中,什么都没有发生。JavaScript在iOS上的WebKit浏览器中的data
URI页面上不起作用吗?
在Android上的Chrome上,data
URI页面上的JavaScript包含以下HTML
<html>
<head>
</head>
<body>
<a href="javascript:alert('Hi.');">Say hi</a>
</body>
</html>
会导致一个对话框正在说“嗨。”显示当我点击“说嗨”。在iOS上的Chrome中,什么都没有发生。JavaScript在iOS上的WebKit浏览器中的data
URI页面上不起作用吗?
1条答案
按热度按时间3b6akqbq1#
JavaScript、WebKit和数据URI
JavaScript
可以在iOS
上的WebKit
浏览器中工作,如Safari
,但与其他平台相比,在行为和安全性方面存在差异。iOS
上的WebKit
对执行JavaScript
有更严格的规则,特别是在非标准情况下,如在data URIs
中使用JavaScript
。例如,由于安全性和兼容性原因,在锚标记中使用javascript: URI
可能无法在iOS
上正常工作。存在这些差异是为了增强安全性、性能和用户体验。要绕过此限制,可以使用传统技术运行
JavaScript
。例如,您可以使用event listeners
。HTML和JS逻辑:
Data-URL:
当我在
IPhone 14 Pro IOS 16.2 Emulator
上执行Data-URL
时,它看起来像这样。截图:
Safari on IPhone
在给定的场景中,我们为超链接设置了一个
click event
。为了确保它在点击时不像普通链接那样,我们使用event.preventDefault()
方法。之后,我们使用alert('Hello World');
显示一个警报。这种方法经常使用,并且在各种平台上都能很好地工作。如果您有任何问题,请随时询问!