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

cbr*_*lak 8 javascript iframe

当iframe的来源是:

javascript:'';
Run Code Online (Sandbox Code Playgroud)

如:

<iframe id="SpControlFrame1" name="SpControlFrame1" src="javascript:'';" path_src="index.php?cmd=YYY" ></iframe>
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?什么是src ="javascript:'';" 告诉浏览器做什么?

"path_src"有什么作用?

谢谢克里斯

Ate*_*ral 15

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

您可以通过在javascript:'http://stackoverflow.com';普通窗口/选项卡的地址栏中输入来测试其效果.您将获得一个显示" http://stackoverflow.com " 的白页,您实际上不会被带到该URL.

这就是bookmarklet经常将代码包装在内部的原因,void()或者是一个不返回任何内容的匿名函数,以阻止浏览器尝试显示执行bookmarklet的结果.例如:

javascript:void(window.open("dom_spy.html"))
Run Code Online (Sandbox Code Playgroud)

要么:

javascript:(function () { window.open("dom_spy.html"); })()
Run Code Online (Sandbox Code Playgroud)

如果您直接使用返回某些内容的代码(在这种情况下是一个新的窗口实例),浏览器将最终显示:

javascript:window.open("dom_spy.html");
Run Code Online (Sandbox Code Playgroud)

在Firefox中,上面将显示:

[object Window]

  • 请注意,并非所有都需要包含在空白中.浏览器将尝试显示最后一个语句的返回,这样只要最后一个语句没有返回任何内容就可以执行任何操作,例如javascript :( function hello(msg){return msg;})('BOO!'); void (0); (8认同)