document.write в строке состояния - PullRequest
1 голос
/ 18 января 2010

Я пытаюсь создать свой собственный букмарклет, и для этого не очень много руководств. По сути, сейчас я пытаюсь выяснить, почему я не могу просто сделать javascript: document.write ("HAI, WORLD"), который имеет непреднамеренный эффект замены содержимого окна.

В другом месте я понимаю, что Javascript заменяет все содержимое окна возвращаемым значением метода, поэтому я также попробовал javascript: void (document.write ("wut")), но все содержимое окна все еще заменены.

Ответы [ 4 ]

6 голосов
/ 18 января 2010

Это потому, что страница уже загружена и она не знает , где вы хотите написать. Используйте document.documentElement.appendChild(document.createTextNode("HAI, WORLD")).

0 голосов
/ 18 января 2010

Да, как сказал Илия, или если вы хотите изменить строку состояния браузера:

window.status = 'my new status'
0 голосов
/ 18 января 2010

Если document.write() вызывается после завершения загрузки страницы, все содержимое страницы будет перезаписано. Это предполагаемый эффект функции.

Если вы хотите изменить HTML-код на лету, у вас есть несколько вариантов:

  • document.getElementById("foobar").innerHTML("baz")
  • document.getElementById("foobar").appendChild(document.createTextNode("baz"))

Кроме того, вам следует взглянуть на фреймворк, такой как jQuery, который может многое для вас обработать:

  • $("#foobar").html("baz")
0 голосов
/ 18 января 2010

Я пытаюсь понять твой "вопрос", но думаю, ты бы хотел, чтобы он открылся в новом окне, верно?

Тогда вам нужно использовать: javascript:window.open("<url to website>", "some title");

...