是否可以在现有IFrame的src属性上执行内联JavaScript代码(执行某些逻辑并返回url的函数)?
当我尝试代码时,我收到错误:未捕获的ReferenceError:未定义hello
<!DOCTYPE html>
<html>
<head>
<title>title</title>
<script type="text/javascript">
var hello = function(src1){
// some logic goes here
return "www.mysite.com";
}
</script>
</head>
<body>
<iframe width="400" height="400" src="javascript:hello()" >
</iframe>
</body>
</html>
答案 0 :(得分:2)
你不能在src属性中放入内联javascript。您可以使用onload事件。使用以下代码
<!DOCTYPE html>
<html>
<head>
<title>title</title>
<script type="text/javascript">
var hello = function(src1){
// some logic goes here
return "mysitename.com";
}
</script>
</head>
<body>
<iframe width="400" height="400" onload="this.src = hello()">
</iframe>
</body>
</html>
希望这有助于你
答案 1 :(得分:0)
您可以使用document.write
。
<body>
<script type="text/javascript">
document.write('<iframe width="400" height="400" src="' + hello() + '"></iframe>')
</script>
</body>
答案 2 :(得分:0)
对hello()的调用是在iframe内执行(因为&#39; javascript:hello()&#39;是iframe SRC) 但功能&#39;你好()&#39;在父窗口中的iframe外部声明,嵌入iframe。 您可以在iframe src中调用parent.hello(),或者在调用hello()之前在iframe src中声明hello()的主体。以下是两种方法的演示:
Double
你可以在这里看到它: https://fiddle.jshell.net/vtdc1qxf/3/