Javascript在URL栏中

时间:2014-11-13 01:00:10

标签: javascript

当我输入类似

的内容时
javascript:alert("test");

进入url栏,它工作正常。但是当我键入类似

的内容时
javascript:window.onclick=function(){alert('hi');}

它带我到一个页面说

function (){alert('hi');}

BTW,我正在运行Firefox 33.是的,如果我在控制台中键入代码,代码就可以运行。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

将其包装在立即调用的函数表达式

javascript:(function (){ window.onclick = function () { alert( "Hi" ); } }());

答案 1 :(得分:1)

或者,您可以确保javascript:网址的最终结果为undefined

javascript:window.onclick=function(){alert('hi');},undefined

javascript:网址的语义是评估:之后的任何内容作为要加载的网址的结果,除非结果为undefined。桑普森先生的答案中的IIFE完成了这一点,但是,正如上面的逗号运算符示例那样,表达式评估undefined的结果也是如此。

确保您的javascript:网址(或书签,我们正在讨论的内容)是网址编码的,这是一个好主意,尽管浏览器通常非常宽容在URL栏中。如果您想将URL保存为书签,我总是对其进行编码。