使用javascript或css更改iframe的内容

时间:2013-05-23 12:32:51

标签: javascript css ajax iframe

我在网站上有iframe页面。 iframe域名和我的网站域名不同。 在$(document).ready上的iframe执行ajax请求。插入div的这个ajax请求的响应。 Ajax响应如下:

<ul>
    <li><a href="example.com/page-1">5 currency</a></li>
    <li><a href="example.com/page-2">10 currency</a></li>
    <li><a href="example.com/page-3">some other text</a></li>
    <li><a href="example.com/page-4">5 currency</a></li>
    <li><a href="example.com/page-3">some other text 2</a></li>
    ....
    <li><a href="example.com/page-n">54 currency</a></li>
</ul>

我需要将currency替换为currency2。 我知道同源策略不允许使用javascript更改内容。 用css做任何方法吗?或任何其他方式?

感谢。

2 个答案:

答案 0 :(得分:2)

你不能用css或js来做。

jQuery/JavaScript: accessing contents of an iframe

唯一的方法是更改​​ajax响应。如果您只能更改$(document).ready iframe的调用,那么您可以通过以下代码更改ajax内容

$.ajax({
 success: function(resp){
 resp.replace(/currency/g,'currency2');
}
})

答案 1 :(得分:0)

如果你没有对你在iFrame中显示的标记本身的任何访问权限,我不相信有任何办法这样做我害怕。正如您已经确定的那样:安全策略不允许它(即使您找到了解决方法,它也不太可能跨浏览器工作)。

CSS也不是真正的选项,因为它更基于dsplay,除非你能找到一种方法来使用:after伪类来注入'2'。

如果您确实可以控制正在进行AJAX请求的页面,那么可以使用AJAX响应(或类似)上的jQuery替换来轻松切换文本:

ajaxResponse.replace('currency', 'currency2')