我的索引HTML變量:添加到iframe的全球範圍內
<html>
<head>
<title>index</title>
<script src="jquery.js"></script>
</head>
<body>
<h1>Index</h1>
<hr/>
<iframe id="frame"></iframe>
<hr/>
<button id="btn">Click</button>
<script>
$(function(){
window.api = {
fun: function(){alert('index api')}
};
var frame = document.getElementById('frame');
frame.src = 'frame.html';
});
$('#btn').click(function(){
$('#frame').contents().find('body').css('backgroundColor', 'red');
$('#frame').contents().find('#btn').text('lol');
});
</script>
</body>
</html>
在加載frame.html
的JavaScript可以通過parent.api
存取權限的api
對象。
是否可以添加一個API對象frame.html窗口,所以它可以通過window.api
在那裏? (而不是parent.api
)(考慮相同來源和不同來源)?
上述代碼確實有效(例如#button
更改背景和標籤),但我認爲這是因爲所有這些文檔都在我的電腦上(同一來源)。我對嗎?
如果iframe是從一個不同的域,相同的來源政策阻止你訪問它。這是設計。 –
在這裏使用[Chrome](http://stackoverflow.com/a/5664399/1169519)? – Teemu