我在网站上有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做任何方法吗?或任何其他方式?
感谢。
答案 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')