Javascript document.write-in状态栏

Javascript document.write-in状态栏,javascript,bookmarklet,Javascript,Bookmarklet,我正在尝试创建我自己的bookmarklet,但并没有太多的指南。基本上,现在我正试图弄清楚为什么我不能只做javascript:document.write(“HAI,WORLD”),这会产生意想不到的效果,替换窗口内容 我从其他地方了解到,Javascript用方法的返回值替换了窗口的全部内容,因此我也尝试了Javascript:void(document.write(“wut”)),但仍然替换了整个窗口内容。这是因为页面已经加载,它不知道要写入到哪里。使用document.document

我正在尝试创建我自己的bookmarklet,但并没有太多的指南。基本上,现在我正试图弄清楚为什么我不能只做javascript:document.write(“HAI,WORLD”),这会产生意想不到的效果,替换窗口内容


我从其他地方了解到,Javascript用方法的返回值替换了窗口的全部内容,因此我也尝试了Javascript:void(document.write(“wut”)),但仍然替换了整个窗口内容。

这是因为页面已经加载,它不知道要写入到哪里。使用
document.documentElement.appendChild(document.createTextNode(“HAI,WORLD”))

这是因为页面已经加载,不知道要写入到哪里。使用
document.documentElement.appendChild(document.createTextNode(“HAI,WORLD”))

我试图理解您的“问题”,但我认为您希望在新窗口中打开它,对吗

然后您需要使用:
javascript:window.open(“,“一些标题”)

我试图理解你的“问题”,但我想你会想让它在一个新窗口中打开,对吗

然后您需要使用:
javascript:window.open(“,“一些标题”)

如果在页面完成加载后调用
document.write()
,则页面的全部内容将被覆盖。这是功能的预期效果

如果您希望动态修改HTML代码,您有几个选项:

  • document.getElementById(“foobar”).innerHTML(“baz”)
  • document.getElementById(“foobar”).appendChild(document.createTextNode(“baz”))
此外,您应该研究一个类似jQuery的框架,它可以为您处理很多这方面的问题:

  • $(“#foobar”).html(“baz”)
如果在页面加载完成后调用
document.write()
,则页面的全部内容将被覆盖。这是功能的预期效果

如果您希望动态修改HTML代码,您有几个选项:

  • document.getElementById(“foobar”).innerHTML(“baz”)
  • document.getElementById(“foobar”).appendChild(document.createTextNode(“baz”))
此外,您应该研究一个类似jQuery的框架,它可以为您处理很多这方面的问题:

  • $(“#foobar”).html(“baz”)

是的,正如以利亚所说,或者如果您想更改浏览器的状态栏:

window.status = 'my new status'

是的,就像以利亚说的,或者如果你想改变浏览器的状态栏:

window.status = 'my new status'

另外,我认为Firefox默认情况下会禁用此功能。在Firefox中,您可以将disable_window_status_change设置为falseNote,我认为Firefox默认情况下也会禁用此功能。在Firefox中,您可以将disable_window_status_change设置为FalsePersonal,对于bookmarklet,我不希望使用任何第三方框架并将我的javascript封装在
(function(){})(
以避免与页面上已有的脚本发生潜在冲突。这就是学习纯javascript的方便之处。就个人而言,对于bookmarklet,我不希望使用任何第三方框架,而是将我的javascript封装在
(function(){})()
以避免与页面上已经存在的脚本发生潜在冲突。这就是学习纯javascript的方便之处。您应该使用
document.body
,因为在
中添加额外元素在技术上是无效的。不能保证每次运行脚本时都会加载body。此外,如果对ad无效如果将d个节点添加到根节点,我会得到一个
DOMException.HIERARCHY\u REQUEST\u ERR
错误。您应该使用
document.body
,因为向
添加额外元素在技术上是无效的。不能保证每次运行脚本时都会加载body。此外,如果向根节点添加节点无效,我会得到a
DOMException.HIERARCHY\u REQUEST\u ERR
错误。