应该怎样的JavaScript的返回值 链接处理?(How should the return

2019-10-21 11:39发布

标准要求,有什么要处理JavaScript协议的返回值的正确方法href链接?

一些例子:

  •  <a href='javascript:"Hello World";'> Click </a> <!-- return a String --> 

  •  <a href='javascript:ThisFunctionReturnsString();'> Click </a> 

  •  <a href='javascript:12345;'> Click </a> <!-- Number --> 

  •  <a href='javascript:[1, 2, 3, 4, 5];'> Click </a> <!-- Array --> 

  •  <a href='null;'> Click </a> <!-- null--> 

  •  <a href='undefined;'> Click </a> <!-- undefined--> 

  •  <a href='javascript:{};'> Click </a> <!-- Object --> 

标准兼容的浏览器应该如何处理的返回值?

如何在野外当前的浏览器从这个标准的行为有什么不同?

Answer 1:

从Web应用程序API第6.1.5节 :

下面解释为什么点击链接替换文档内容:

如果在执行脚本的结果是无效的(没有返回值),则必须将URL以等效于HTTP资源一个与HTTP 204无内容响应处理。

否则,该URL必须以这样的方式等效处理,以HTTP资源用200 OK响应,其内容类型的元数据是文本/ html和其响应体是转换成一个字符串值的返回值

这种行为也可以通过简单地粘贴轻易表现出来javascript:"Hello World"; 在地址栏中。 这同样适用于javascript:(function() { return "Hello World";})()

而下面的解释了为什么只有你的1个2的代码片段实际上是做什么的。

让脚本源是使用javascript的定义的内容的检索操作获取的字符串 :网址



文章来源: How should the return value of JavaScript links be handled?