当iframe的源代码是javascript时,浏览器做什么

当iframe的源代码是javascript时,浏览器做什么,javascript,iframe,Javascript,Iframe,当iframe的源为: javascript:''; 例如: <iframe id="SpControlFrame1" name="SpControlFrame1" src="javascript:'';" path_src="index.php?cmd=YYY" ></iframe> 发生了什么事?src=“javascript:”;告诉浏览器做什么 “路径src”是做什么的 谢谢 Chris它告诉浏览器显示执行空字符串文本的结果。因此,它只会显示一个空字符串

当iframe的源为:

javascript:'';
例如:

<iframe id="SpControlFrame1" name="SpControlFrame1" src="javascript:'';" path_src="index.php?cmd=YYY" ></iframe>

发生了什么事?src=“javascript:”;告诉浏览器做什么

“路径src”是做什么的

谢谢
Chris

它告诉浏览器显示执行空字符串文本的结果。因此,它只会显示一个空字符串

您可以通过键入
javascript:'来测试这种效果http://stackoverflow.com';在普通窗口/选项卡的地址栏中。你会得到一个白色页面,上面写着“”,而你实际上不会被带到那个URL

这就是为什么bookmarklet经常将代码包装在
void()
中,或者是一个匿名函数,它不返回任何东西来阻止浏览器尝试显示执行bookmarklet的结果。例如:

javascript:void(window.open("dom_spy.html"))
或:

如果直接使用返回某些内容的代码(本例中为新窗口实例),浏览器将最终显示:

javascript:window.open("dom_spy.html");
在Firefox中,上述内容将显示:

[object Window]
[对象窗口]据我所知,
src
属性映射到
iframe
元素
location.href
。因此,将
src
设置为
javascript:“”有点荒谬,浏览器将执行以下两项操作之一:

  • 忽略它,因为它不是URI,并且不解析为任何可显示的资源
  • 执行不产生任何结果的javascript

无论哪种方式,你完成的都很少。这段代码是您继承的还是您试图对
iframe
执行一些棘手的操作?

继承的。path_src扮演什么角色?@cbrulak它什么都不做。它是其他框架正在使用的东西。请注意,它并不都需要包装在一个空白处。浏览器将尝试显示最后一条语句的返回,因此只要最后一条语句不返回任何内容,您就可以执行任何操作,例如javascript:(函数hello(msg){return msg;})('BOO!');无效(0); [object Window]