检查here
javascript:Function("alert('this is ok')")();
与
相同new Function("alert('this is ok')")();
语法叫什么?
任何参考?
修改
抱歉,我的错,它只是一个标签,而且不等于new
。
<script>
javascript:C("val");
wener:C("val");
function C(v)
{
this.val = v;
alert(window.val)
}
</script>
<a href="javascript: alert('foo');">click me</a>
对于<a href="javascript: alert('foo');">click me</a>
,请参阅URI_scheme(感谢apsillers)和draft-hoehrmann-javascript-scheme
答案 0 :(得分:5)
它被称为“在属性中使用JavaScript的旧方式”,仅与HTML相关。
你也可以写:
poop:Function("alert('ohai')")();
您的示例只是JavaScript代码,而不是HTML属性,因此它只是一个标签。
答案 1 :(得分:1)
指定完全限定的链接时,冒号左侧的文本称为scheme。
<a href="https://example.com/foo">foo</a>
^ scheme is "https"
浏览器允许您在HTML标记中指定javascript
方案,在这种情况下,浏览器会将冒号右侧的链接内容解释为要执行的脚本,而不是目标资源。
<a href="javascript:alert('I am a script, formatted as a link!')">foo</a>
^ scheme is "javascript"
(请不要这样做;请改用addEventListener("click", function() { ... })
。)
但是,如果在非链接上下文中包含javascript:
前缀,则会将其解释为JavaScript label。这完全没必要。
答案 2 :(得分:0)
当您想在浏览器的地址栏中执行JavaScript时,可以使用此方法。将javascript:Function("alert('this is ok')")();
复制/粘贴到浏览器的地址栏中,然后按Enter键。