为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候需要指定JavaScript协议?

什么时候需要指定JavaScript协议?

梦里花落0921 2019-12-03 16:32:01
我的印象是,在URL属性(如hrefs)中使用JavaScript时,我只需要指定“协议”。这是唯一的“有用”上下文javascript:吗?明智的:<a href="javascript:alert('Hello')">World!</a>愚蠢:<form onsubmit="javascript:alert('oops!')">这是正确的吗?还是我需要注意一些晦涩的错误/用例?
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

javascript:事件处理程序上的伪协议将仅被忽略,您不需要它,JavaScript引擎将解释javascript:为Label Statement。


标签只是为语句提供标识符,并允许您在程序的其他位置引用它。


恕我直言,此伪协议仅对书签有用。


查看完整回答
反对 回复 2019-12-03
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

正如其他答案所提到的,避免使用javascript:href链接,并且在事件处理程序属性中完全没有必要。但是,由于A标记有时在语义上仍然正确,因此,href如果您想将CSS样式:link和:hoverCSS样式应用于Internet Explorer中的元素,则需要在属性中添加一些内容。在这种情况下,请使用:


<a href="#" onclick="doSomething(); return false;">Link</a>

要么


<a href="javascript://" onclick="doSomething();">Link</a>

javascript协议存在一个(有点晦涩)错误-在Internet Explorer *中,单击链接时会认为您正在离开页面。如果您正在使用window.onbeforeunload,那么此时将显示您的导航信息。仅出于这个原因,我们已经完全停止使用javascript协议,因此不会显示此错误,因为在向某个页面添加导航信息时,我们忘记了对其进行检查。


*我第一次写这篇文章时可能已经指定了版本。我完全不记得了,但是以防万一该错误只出现在如今已绝大部分的浏览器(如IE 6或7)中,您最好自己进行测试。


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信