通过浏览器的url栏嵌入时JavaScript无法正常工作

时间:2012-12-22 12:19:07

标签: javascript google-chrome

我正在尝试将此行添加到浏览器的网址栏(我的浏览器是Chrome)

javascript:document.getElementsByTagName("head")[0].innerHTML+="<link rel='stylesheet' type='text/css' href='st1.css'>";

当我按回车键时,整个页面都会消失。

当我检查源代码时,我可以看到JavaScript已被执行,但是,整个内容消失了,尽管正文的内容在源代码中保持不变!

为什么会这样?

3 个答案:

答案 0 :(得分:1)

您编写的JavaScript返回document.getElementsByTagName("head")[0]

要确保没有返回值,请将代码更改为以下内容:

javascript:(function(){document.getElementsByTagName("head")[0].innerHTML+="<link rel='stylesheet' type='text/css' href='st1.css'>";}());

答案 1 :(得分:0)

我想innerHTML只是用于在网页中显示它而不是在标题中添加任何内容。

准确地说,您不能在该部分中使用它来做任何事情。

答案 2 :(得分:0)

您必须确保该语句不会返回任何内容 - 表达式中被视为可返回的任何内容都将被视为URL或页面内容以替换当前页面。默认情况下,表达式+=将是。一个好的解决方案是在语句前加void,这样就不会返回任何内容。