在旧版旧代码中,我发现了以下onclick事件:
onclick="javascript:bSubmitted=true;"
有人知道此代码前面的javascript:
标签是做什么的吗?我以前从未见过这种表示法,据我所知onclick事件中的内容始终是javascript。删除它或将其更改为其他东西似乎没有效果,并且IntelliJ似乎认为这是“不必要的标签”。
出于好奇,我仍然想知道它的作用以及它的用途。有人知道吗?
答案 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;"
添加到其标签。