[英]Calling javascript function from parent window inside iframe but the iframe src is from remote machine
首先,我的頁面上有這個iframe。
<iframe src="https://192.168.100.87/index.html">
<p>Browser does not support iframe</p>
</iframe>
我的頁面標題標簽中包含以下腳本。
<head>
<script type="text/javascript">
function callMe(){
alert('called');
}
</script>
</head>
而且我有來自遠程計算機的index.html中的以下代碼。
<body>
<input type="button" value="Click" onClick="window.parent.callMe()" />
</body>
如您所見,我正在調用包含我的iframe的主頁的函數。 但不幸的是我無法調用該函數。
這可能嗎,我在這里想念什么? 謝謝
您無法訪問其他域的屬性或Windows的調用方法。 但是,您可以使用postMessage
將消息發送到其他域的框架(請參閱https://developer.mozilla.org/en-US/docs/DOM/window.postMessage )。
嘗試parent.postMessage('testing', '*');
。 第一個參數是要發送的數據; 第二個是您要發送到的窗口的域。 使用'*'
可以將其發送到任何主機,但是為了提高安全性,您應該使用父級的實際域。
然后在您的父頁面中:
window.addEventListener('message', function(event) {
if (event.data == 'testing') {
callMe();
}
});
這僅在現代瀏覽器中有效。 如果您需要支持較舊的瀏覽器(如IE 7或更舊的瀏覽器),請查找postMessage polyfill。
除非正在運行該機器的代碼也位於192.168.100.87,否則這是不可能的。 您不能從其他來源的頁面訪問任何內容。 參見https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.