根据标准,处理javascript协议href
链接的返回值的正确方法是什么?
一些例子:
<a href='javascript:"Hello World";'> Click </a> <!-- return a String -->
&#13;
<a href='javascript:ThisFunctionReturnsString();'> Click </a>
&#13;
<a href='javascript:12345;'> Click </a> <!-- Number -->
&#13;
<a href='javascript:[1, 2, 3, 4, 5];'> Click </a> <!-- Array -->
&#13;
<a href='null;'> Click </a> <!-- null-->
&#13;
<a href='undefined;'> Click </a> <!-- undefined-->
&#13;
<a href='javascript:{};'> Click </a> <!-- Object -->
&#13;
标准 兼容浏览器应如何处理返回值?
野外的当前浏览器与此标准行为有何不同?
答案 0 :(得分:2)
来自Web Applications API §6.1.5:
以下说明了点击链接替换文档内容的原因:
如果执行脚本的结果是无效的(没有返回 值),然后必须以等同于HTTP的方式处理URL 具有HTTP 204无内容响应的资源。
否则,必须以等同于HTTP的方式处理URL 内容类型元数据为200 OK响应的资源 text / html和其响应体是转换为a的返回值 字符串值。
只需在地址栏中粘贴javascript:"Hello World";
,即可轻松演示此行为。同样适用于javascript:(function() { return "Hello World";})()
。
以下解释了为什么只有你的1和2代码片段实际上在做什么。
让脚本源为使用为javascript定义的内容检索操作获取的字符串:URL