伪协议不同于因特网上所真实存在的如http://,https://,ftp://,而是为关联应用程序而使用的.如:tencent://(关联QQ),data:(用base64编码来在浏览器端输出二进制文件),还有就是javascript:
我们可以在浏览地址栏里输入"javascript:alert('JS!');",点转到后会发现,实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面
类似,我们可以在a标签的href属性中使用javascript伪协议
<a href="javascript:alert('JS!');"></a> //点击这面的链接,浏览器并不会跳转到任何页面,而是显示一个弹窗
但javascript:伪协议有个问题,它会将执行结果返回给当然的页面
<a href="javascript:window.prompt('输入内容将替换当前页面!','');">A</a>
解决方法很简单
<a href="javascript:window.prompt('输入内容将替换当前页面!','');undefined;">A</a> //将undefined加到最后
尽管javascript伪协议提供了一定的灵活性,但在页面中尽量不要使用!而对于调试JavaScript,javascript伪协议则显得十分有用!