如何在iframe src中使用JavaScript变量

9

如何在iframe的src中编写JavaScript变量?

例如:

<iframe id="showskill" scrolling="yes" height="350" width ="350" src="http://localhost/POSkill/skillshow.aspx?user_id="+ ReturnURL() ></iframe>

这里的ReturnURL()是一个返回值的javascript函数。但是问题在于,在iframe源代码中,我没有得到该函数的返回值。是否我没有以正确的格式放置或者遗漏了什么?

先感谢您的帮助。 Johnny


第一步:加载您的HTML,右键单击并选择“查看源代码”,然后向下滚动并找到iframe标记存在的位置。检查“src =”属性,并请回复它所说的内容。如果“user_id =”没有值(或值不正确),则可能是您的函数出现问题,否则我们将不得不找到另一种传递参数的方法。 - BananaNeil
2个回答

23

你不能直接在html标记中使用JavaScript变量或函数。你可以先定义iframe,然后通过JavaScript设置其源代码:

<iframe id="showskill" scrolling="yes" height="350" width ="350" src=""></iframe>

<script>
    document.getElementById("showskill").src =
              "http://localhost/POSkill/skillshow.aspx?user_id="+ ReturnURL();
</script>

还有其他几种方法可以实现类似的功能,但我不想在不确定您的上下文的情况下全部讲解。


4
您不能像您在此处所做的那样直接附加由函数返回的变量。请按照以下方式进行操作。
var url=ReturnURL();
var urlPath='http://localhost/POSkill/skillshow.aspx?user_id='+url;
document.write('<iframe id="showskill" scrolling="yes" height="350" width ="350" src="'+urlPath+'><\/iframe>');

这是不正确的。附加函数的返回值是完全可能的。尝试这个:var ohai = "O" + 'HAI'.toLowerCase();jsfiddle在这里 - Peter-Paul van Gemerden
@PPvG - 在问题中展示的方式中,您无法直接将返回值附加在HTML标记中。我确信这就是Umesh的意思,尽管该答案中的代码示例使这有点模糊不清。 - nnnnnn
@nnnnnn 我想你可能是对的。如果是这样:抱歉误解了。 - Peter-Paul van Gemerden
1
@PPvF,在你的JS fiddle中,变量可以附加到函数返回的字符串上是完全可接受的。但是,如果要在HTML中显示iframe,我们不能将变量添加到HTML标记中。您需要使用由函数返回的动态变量呈现iFrame。我以前多次使用过类似的脚本 :) - Umesh Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接