当我输入类似
的内容时javascript:alert("test");
进入url栏,它工作正常。但是当我键入类似
的内容时javascript:window.onclick=function(){alert('hi');}
它带我到一个页面说
function (){alert('hi');}
BTW,我正在运行Firefox 33.是的,如果我在控制台中键入代码,代码就可以运行。
任何帮助都将不胜感激。
答案 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保存为书签,我总是对其进行编码。