2016-09-04 6 views
-1

Выполните следующие шаги.Javascript "value = ..." возвращает пустую страницу

Шаги 1:

  1. Перейти к google.
  2. Откройте консоль javascript.
  3. Введите команду: document.all.q.value = "hello"

Как и ожидалось, элемент с именем «д» (поиск поля) устанавливается на «привет»). See image

Шаги 2:

  1. Перейти к google.
  2. В адресной строке введите javascript: document.all.q.value = "hello!"
  3. Нажмите Enter

Если ваш браузер либо Internet Explorer или Google Chrome, то Javascript будет заменен на веб-сайте Google с совершенно пустой страницы, за исключением слово «Hello».

Lazy? Here's an image.

Наконец

Теперь, когда вы прослушивались ваш браузер, вернитесь к Google.com и повторите шаги 1 . Вы должны получить сообщение об ошибке «Uncaught ReferenceError: документ не определен (...) VM83: 1 See image

Вопрос:

ли я делаю что-то не так, и есть еще один метод, который работает, в то же время использовать? в адресной строке для ввода JS?

+0

Спасибо RamenChef и thegunmaster! :) – Sancarn

ответ

-1

Когда возни с javascript: в adressbar какой-то (если не большинство) браузеры обрабатывают ее как новую страницу, так что вы должны добавить window.history.back(); в конце

javascript: document.all.q.value = "hello!"; window.history.back(); 
+0

Я действительно пробовал, что странно. Сначала вводился текст, после чего он моментально удалялся: P В любом случае решение Quentin отлично работает! Спасибо за твое, хотя :) – Sancarn

1

Назначение URL-схемы схемы javascript: заключается в создании новой страницы с использованием JavaScript. Изменение существующей страницы - это что-то вроде взлома.

document.all.q.value = "hello!"; evalues ​​как "hello!", поэтому при посещении этого URL-адреса вместо существующей страницы создается и загружается новый HTML-документ, состоящий исключительно из текста hello!.

Чтобы избежать этого: убедитесь, что JS не возвращает строку. Вы можете сделать это, используя void.

javascript:void(document.all.q.value = "hello!"); 
+0

Я вижу! Спасибо за всю информацию! И действительно, сейчас все работает нормально! Кроме того, никогда не знал о функции void(). Огромное спасибо! – Sancarn

Смежные вопросы