当前位置: 首页 > 面试题库 >

您是否需要在onclick中指定“ javascript:”?

扶高歌
2023-03-14
问题内容

AFAIK,您无需在onclick中指定协议:

onclick="javascript:myFunction()"

onclick="myFunction()"

今天,我在GoogleAnallytics上注意到他们正在使用它:

<a href="http://www.example.com" onClick="javascript: pageTracker._trackPageview('/outgoing/example.com');">

这个例子是完全错误的,还是有理由指定javascript:href?以外的其他内容?


问题答案:

这里的一些响应声称“javascript:”前缀是“过去的遗留物”,这意味着浏览器有意对它进行了特殊处理,以实现向后兼容。是否有确凿的证据证明是这种情况(有人检查过源代码)吗?

<span onclick="javascript:alert(42)">Test</span>

对我来说,它的意思是:

javascript:
    alert(42);

意思是,“ javascript:”只是一个标签,没有任何作用。这也有效:

<span onclick="foobar:alert(42)">Test</span>

更新:

我做了一个小实验,结果是,是,“javascript:”是由IE专门处理的,但Firefox,Safari,Opera或Chrome绝对不是这样处理的:

<span onclick="javascript:while (true) { alert('once'); break javascript; }">Test</span>

在非IE上,这将仅一次警告一次,然后退出循环。在IE上,出现“找不到标签”错误。以下内容在所有浏览器中均可正常运行:

<span onclick="foo:while (true) { alert('once'); break foo; }">Test</span>


 类似资料:
  • 问题内容: 众所周知,Windows使用带反斜杠的路径,而Unix使用带反斜杠的路径。node.js提供了始终使用正确的斜杠。因此,例如,您不必编写Unix,而只编写Unix 。 但是,似乎存在这种差异,但是如果您不对路径进行规范化(例如,使用path.join),而仅编写诸如node.js之类的路径,则在Windows上运行脚本没有问题。 那么,有没有写上任何好处了?无论平台如何,两者似乎都可以

  • 问题内容: 我有使用$ on绑定事件的指令,在销毁作用域时是否需要删除该绑定,或者它是自动完成的?还需要致电$ element.off吗? 问题答案: *由于视图中的端到端绑定,当 *监听器 失去其外观时, 监听器将被自动销毁/清理 。注意,绑定不会发生这种情况。您还可以查看AngularJS的$ scope文档 。 用几句话回答: 将被自动销毁。 您需要手动销毁。 文档说明: 范围销毁-当不再需

  • 问题内容: 我想在我的JavaScript代码中包含几个JSON文件,这些文件与JavaScript源文件位于同一目录中。 如果我想包含另一个JavaScript文件,可以直接使用。现在,我正在使用和获取JSON,我认为这是执行此操作的丑陋方法。 是否有类似的要求,使我能够加载JSON文件? 问题答案: 从节点v0.5.x开始,是的,您可以像需要js文件一样要求JSON。 在ES6中:

  • 问题内容: java中的try … catch … finally块共有3种排列。 试着抓 尝试…抓住…最后 尝试…最后 一旦执行了finally块,控制权将移至finally块之后的下一行。如果我删除了finally块并将其所有语句移到try … catch块之后的行,那么与将它们放入finally块中的效果相同吗? 问题答案: 我认为willcode最接近在这里表达关键点,也许每个人都知道,但

  • 问题内容: 我的计划是将一些现有的Redis密钥存储在散列中,稍后再从Redis Lua脚本中获取并采取行动。我读到,最好的做法是提供调用时脚本中使用的所有键。 我的问题是,运行在运行时没有提供任何键,而是对从脚本 内部 获取的某些键进行操作的脚本是否安全?如果没有,后果是什么,如何避免这一缺点? 我提到在的时候,无法知道特定哈希中的键是什么。我可以在步骤之前的某个步骤中从哈希中获取所有键,然后将

  • 问题内容: 如果我忘记了,有时反正还是可行。但有时并非如此。 在JDBC和Android SQLite中,似乎根本不需要。我很迷惑。 我什么时候应该使用分号? 问题答案: 分号表示一条语句的结尾,因此,如果有多个语句,则应使用分号,否则它将正常工作。 我通常使用分号作为练习,即使您在sql客户端上运行查询,例如在Sql Developer中使用分号,如果在工作表上有多个语句,它也很有用,因为您可以