为什么地址栏可以解析javascript:?

时间:2013-01-30 02:46:57

标签: javascript browser

为什么地址栏,锚点和iframe.src解析javascript:,是否有关于此的w3c规范?

2 个答案:

答案 0 :(得分:2)

令人惊讶的是,W3C与JavaScript没有任何关系(正确称为ECMAScript)。 HTML规范是与脚本语言无关的,您实际上会看到它们在Tcl中提供示例。在IE的统治期间,遇到使用VBScript而不是JavaScript的页面并不罕见。

浏览器需要能够在URI变得流行之后评估URI中的脚本:

<a href="javascript: alert('foo');">click me</a>

...作为onclick等DOM事件的替代品。我推测这个方法是在DOM事件标准化之前出现的,或者它可能是作为供应商扩展引入的,以便促进对特定浏览器的锁定( a la <marquee><blink>)。但这只是猜测。

无论如何,如果浏览器在处理href=""属性时支持对脚本的评估,那么延伸支持到地址栏只需要很短的时间。我认为Bookmarklets的创作完全是偶然的,无意的,但仍然是积极的结果。

答案 1 :(得分:0)

它没有完全“解决”它,输入“javascript:alert('here');”您可以在某些浏览器中显示警告框。我没有注意到的规范,只是有些浏览器会在加载页面后在客户端运行javascript。

通常,如果您在冒号(:)的左侧键入内容,则它是一个协议,例如chrome://,http://,sftp://

此外,在chrome中你可以打开一个javascript控制台并直接在那里输入javascript而不是地址栏。