Почему не работает? - PullRequest
       37

Почему не работает?

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

Тег href может содержать «ссылки» протокола JavaScript. Например:

<a href='javascript:alert("Hello World");'>Click</a>

При нажатии на ссылку запускается код JavaScript, указанный в значении тега href.

Мы тоже можем это проверить, введя значение тега href прямо в адресную строку браузера. Попробуйте, введите javascript:alert("Hello World"); в строку URL и нажмите Введите .

Таким образом, приведенный выше код работает должным образом. Однако , javascript:"text" не работает:

<a href='javascript:"Hello World";'>Click</a> 

Когда я нажимаю на ссылку ( JSFiddler ; G-Host ), он не делает ничего .

Содержимое страницы не заменяется текстом Hello World , как это было бы , если бы мы ввели javascript:"Hello World" непосредственно в строку URL. Попробуйте ввести его прямо в адресную строку.

Это ошибка?

Почему href не работает с "javascript:'text';"?

Ответы [ 2 ]

0 голосов
/ 25 декабря 2014

Так или иначе код работает сейчас, проверено на ( JSFiddler ; G-Host ):

  • Chrome (39.0.2171.95)

  • FireFox (33.0.2)

  • IE-8 (8.0.6001.18702IC)

  • Opera (12.16)

(То есть , если это произошло из-за ошибки браузера, ошибка, кажется, исправлена.)

Тем не менее, в Safari (5.1.7) все еще не работает.

0 голосов
/ 01 сентября 2011

Ваше предположение здесь неверно.

Для открытия документа, на котором написано asd, вы должны открыть новое окно и написать в нем текст запроса "asd". Прямо как:

winHandler = window.open("_blank","","");     //Opens a new blank window and is handled by winHandler
winHandler.document.write("asd");    //Writes some text to window opened.

Так что теперь вы можете переписать свой код в:

  1. и вызовите ее. [рекомендуется]

  2. Напишите оба Stmt последовательно.

Еще одно предположение: href ожидает, что некоторые URL будут предложены другими, поэтому используйте обработчик событий JavaScript onclick для вызова или запуска функции. E.g.:

<script>
     function openWin(){
         winHandler = window.open("_blank","","");     //Opens a new blank window and is handled by winHandler
         winHandler.document.write("asd");    //Writes some text to window opened.
     }
</script>     
<a href='#' onclick="openWin()">a</a>
...