如何处理JavaScript <href>链接的返回值?</href>

时间:2014-12-25 17:45:23

标签: javascript html url protocols standards

根据标准,处理javascript协议href链接的返回值的正确方法是什么?

一些例子:

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

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

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

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

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

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

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

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

野外的当前浏览器与此标准行为有何不同?

1 个答案:

答案 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

相关问题