我如何从iframe获取json,这不是jsonp,这就是我所拥有的。 (当然只使用javascript)
<script type="text/javascript">
var theFrame = document.getElementById('iframe');
var theWin = theFrame.contentWindow;
var theDoc = theFrame.contentDocument || theFrame.contentWindow.document;
var json = theDoc;
var msgs = JSON.parse(theDoc);
for (var i = 0, l = msgs.length; i < l; i++) {
var msg = msgs[i];
var div = document.createElement('div');
div.innerHTML = 'Hello ' + msg.user + ' your Id is: ' + msg.ID + 'and your message is: ' + msg.message + ' it has ' + msg.replies + ' replies';
document.body.appendChild(div);
</script>
<iframe id="iframe" name="iframe" src="http://jsonsource.com/not/jsonp/" width="100" height="100">
<p>Your browser does not support iframes.</p>
</iframe>
答案 0 :(得分:2)
iframe遵循与XHR相同的原始政策。因此,如果您的目标是绕过它,那就别忘了。如果您的目标不是要解决这个问题,为什么要使用iframe而不是XHR(它有更好的API)?
也就是说,代码中唯一明显错误的是您尝试在iframe存在之前访问它。将脚本移到后面。
答案 1 :(得分:0)
您可以通过访问iframe的contentDocument.documentElement.textContent属性来获得所需内容。 (在IE中,它是innerText而不是textContent。)