Что делает браузер, когда источником iframe является javascript - PullRequest
8 голосов
/ 10 января 2009

Когда источником iframe является:

javascript:'';

как в:

<iframe id="SpControlFrame1" name="SpControlFrame1" src="javascript:'';" path_src="index.php?cmd=YYY" ></iframe>

Что происходит? Что делает src = "javascript: '';" сказать браузеру сделать?

что делает "path_src"?

Спасибо Chris

Ответы [ 2 ]

15 голосов
/ 10 января 2009

Указывает браузеру отображать результат выполнения пустого строкового литерала. Следовательно, будет отображаться пустая строка.

Вы можете проверить эффект от этого, набрав javascript:'http://stackoverflow.com'; в адресной строке обычного окна / вкладки. Вы получите белую страницу с надписью "http://stackoverflow.com"", и вы фактически не будете перенаправлены на этот URL.

Это причина того, что букмарклеты часто обертывают код внутри void() или анонимной функцией, которая ничего не возвращает, чтобы браузер не пытался отобразить результат выполнения букмарклета. Например:

javascript:void(window.open("dom_spy.html"))

Или:

javascript:(function () { window.open("dom_spy.html"); })()

Если вы напрямую используете код, который возвращает что-то (в данном случае новый экземпляр окна), браузер в итоге отобразит следующее:

javascript:window.open("dom_spy.html");

В Firefox выше будет отображаться:

[object Window]
1 голос
/ 10 января 2009

Насколько мне известно, атрибут src соответствует элементам iframe location.href. Поэтому установка src на javascript:''; немного бессмысленна, и браузер сделает одну из двух вещей:

  • Игнорировать его, поскольку он не является URI и не разрешается ни для какого отображаемого ресурса
  • Выполнить JavaScript, который ничего не дал

В любом случае вы достигнете очень мало. Этот код унаследован или вы пытаетесь сделать что-то хитрое с iframe?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...