0

我是 JavaScript 新手。

我有一个 javascript 函数,它返回我的国家名称。现在我必须把这个值放在 iframe 的 src 中。我的 JavaScript 函数如下:

<script type="text/javascript">
var country = $("#SCountry").val();
function getCountry()
{
   var country = $("#SCountry").val();
   return country;

}
</script>

我正在获取国家/地区价值,但无法将其合并到 iframe 的 src 中。我的 iframe src 如下:

src='https://example.com/?country="javascript:getCountry()"'

它不工作。

4

5 回答 5

3

这将设置 iframe 的源属性值

<script type="text/javascript">
 var country = $("#SCountry").val();
 document.getElementById("iframeid").setAttribute("src","https://domain.com/country="+country)
 </script>
于 2013-06-21T06:58:32.640 回答
3

您不能直接在 iframe src 属性中提供 javascript 代码。

相反,您可以使用 Javascript 设置 iframe 的 src,如下所示

<iframe id="frame"></iframe>

<script>
    window.onload = function() {
        document.getElementById('frame').src = 'https://domain.com/?country=' + getCountry();
    }
</script>

在上述方法中,我们最初没有设置 src 属性,因为这个 IE 会发出安全警告。最好遵循以下方法

<iframe src='/images/spacer.png' onload="this.src = 'https://domain.com/?country=' + getCountry();"></iframe>

<!-- /images/spacer.png meant to be any file. Lesser size is better -->
于 2013-06-21T06:58:38.653 回答
3

您不能简单地将 JavaScript 放在 HTML 属性中。它不会被评估。相反,您必须使用 JavaScript 来操作 DOM 元素,即更改其src属性。

<iframe id="myIframe" src=""></iframe>
<script>
    document.getElementById('myIframe').src = 
        'https://domain.com/?country=' + getCountry();
</script>
于 2013-06-21T06:59:43.047 回答
1
$(function(jQuery){
 var aURL = $('#myIframe').attr( "src");
$('#myIframe').attr( "src",aURL+''+"Isreal"/*use getCountry() here*/);
});

可以检查一下这个小提琴

于 2013-06-21T07:01:10.320 回答
0

您可以像这样访问 iFrame 的“内容”(只需确保为 iFrame 提供 ID)这是一个纯 JS 解决方案:

document.getElementById("iframe_id").contentDocument.getElementById("destination_id").innerHTML = country ;

您的 iFrame 标签可能如下所示:
<iframe src='https://domain.com/' id="iframe_id">``</iframe>

或者

用 php:

JS:

`document.getElementById('iframe_id').src = 'https://domain.com/?country=' + country;`

iframe 中的 PHP:

$country = $_POST["country"];
echo $country; // this echo you can use where you want the result to show up.
于 2013-06-21T06:52:51.207 回答