Замена HTML на Javascript способом, который выполняется в браузере - PullRequest
0 голосов
/ 01 октября 2011

У меня нет опыта работы с Javascript. Я хочу заменить один экземпляр блока текста в HTML-коде страницы - как я могу это сделать?

30 минут чтения принесли мне это:

javascript:document.body.innerHTML = document.body.innerHTML.replace("this","that");

Я даже близко?

Ответы [ 4 ]

2 голосов
/ 01 октября 2011

Без всякого опыта, я рекомендую вам взглянуть на jQuery . С помощью jQuery вы можете сделать:

Дано:

<p>block of text</p>

JQuery:

$('p').text("some other block of text");
1 голос
/ 01 октября 2011

Вы не можете просто выполнить этот скрипт в адресной строке. Он должен работать с документом, но там заменить нечего. Выполнение javascript из адресной строки даст вам новый пустой документ, с которым работает этот код.

Даже если вы попытаетесь загрузить документ из javascript, остальная часть вашего скрипта будет выполнена первой. Попробуйте это:

javascript:window.location='http://www.google.com';alert(document.innerHTML);

Вы увидите, что предупреждение появляется перед загрузкой страницы и показывает «undefined».

Даже при попытке привязки к событию onload документа или окна оно не будет работать. Вероятно, потому что они сбрасываются впоследствии.

javascript:window.location='http://www.google.com';window.onload=function(){alert(document.innerHTML);};

И это имеет смысл; если это сработает, вы можете манипулировать следующей страницей при переходе на эту страницу, что позволит внедрить JavaScript на страницу, на которую вы ссылаетесь. Это было бы большой проблемой безопасности, поэтому хорошо, что это не работает.

1 голос
/ 01 октября 2011

1) Если это часть URL-адреса, например <a href="...">, вам необходимо
javascript:void(document.body.innerHTML = document.body.innerHTML.replace("this","that"));

2) Если это часть события, например <button onClick="...">,тогда вам нужно
document.body.innerHTML = document.body.innerHTML.replace("this","that");

3) Если вы пытаетесь заменить ВСЕ экземпляры "this" на "that", а не только первый, вам нужно
... .replace(/this/g,"that")

1 голос
/ 01 октября 2011
javascript:document.body.innerHTML = "that"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...