Что происходит, так это то, что возвращаемое значение скрипта в URI javascript:
, если это возвращаемое значение не является пустым, обрабатывается как HTML и анализируется как таковое.За исключением WebKit, который не реализует эту функцию (с одним исключением, упомянутым ниже).В вашем случае я предполагаю, что jQuery toggle()
возвращает фактическое значение, которое не является неопределенным, и это значение обрабатывается как строка, которая должна быть проанализирована как HTML.
Вы можете увидеть поведение в этом простом тестовом примере в IEи Firefox и Opera:
<a href="javascript:'<h1>some text</h1>'">Click me</a>
Это полностью не работает в браузерах WebKit, хотя это работает в WebKit, потому что они специально взломали один код:
<iframe src="javascript:'<h1>some text</h1>'"></iframe>
Если вы хотите убедиться,возвращаемое значение вашего скрипта void, поставьте void(0)
в конце скрипта.