在onclick事件中定义的标签,例如“ javascript:bSubmitted = true”

时间:2019-08-02 08:50:01

标签: javascript onclick

在旧版旧代码中,我发现了以下onclick事件:

onclick="javascript:bSubmitted=true;"

有人知道此代码前面的javascript:标签是做什么的吗?我以前从未见过这种表示法,据我所知onclick事件中的内容始终是javascript。删除它或将其更改为其他东西似乎没有效果,并且IntelliJ似乎认为这是“不必要的标签”。

出于好奇,我仍然想知道它的作用以及它的用途。有人知道吗?

2 个答案:

答案 0 :(得分:1)

我想您可以在这里找到答案(这是我发现的唯一谈论此问题的“官方”资源):HTML Standard

摘自 7.8.1跨文档导航

  

如果资源是URL方案为“ javascript”的请求,请排队   任务,在DOM操作任务源上,并与   活动上下文文件,以运行以下步骤:

     

让响应是执行javascript:URL请求的结果   给定资源,源浏览上下文和browserContext。跑   使用资源,响应,navigationType处理导航响应,   源浏览上下文,rowingContext,   incumbentNavigationOrigin和activeDocumentNavigationOrigin。

基本上,javascript:可以用作url方案,该方案(仅用于向样板添加内容)曾经并且仍然用于许多XSS注入。

在这种情况下(在单击事件中)确实确实没有必要,尽管它可能对href很有用,如您在此处看到的(链接到小提琴,因为StackOverflow代码段管理器不允许在{{1} }):https://jsfiddle.net/73rmzjgw/

答案 1 :(得分:0)

当任何更改执行到表单中时,然后javascript会检查是否存在任何更改。如果有,它将在用户离开页面之前警告用户。 可以通过单击添加按钮来禁用此操作,方法是添加

onclick="javascript:bSubmitted=true;"

添加到其标签。