2011-05-10 32 views
3

好的,我在這裏遇到嚴重的問題。在我自己的電腦上,這段代碼工作得很好。但是在我的同事們看來,它在IE和Firefox中都處於劣勢。在所有瀏覽器中使用window.opener的問題

var openlocation = window.opener.location.href;

減免 「權限被拒絕」,在window.opener一部分。所以,關鍵頁面上,我寫了一個儲存在外部的.js頁面的函數:

var getLocation = function() { 
    return window.location.href; 
};

,然後調用,像 var openlocation = window.opener.getLocation();

任何人都不會有爲什麼這是打破任何想法?

編輯:一個頁面正在創建彈出窗口,它們都在同一個域中。 彈出頁面有以下代碼:


$(document).ready(function() { 
    var openlocation = window.opener.getLocation(); 
    (function setTimer() { 
     setInterval(function() { 
      if (window.opener.location.href != openlocation) { // they've changed screens 
       window.close(); 
      } 
     }, 15000); 
    })(); 
    $("input#notescancel").click(function() { 
     window.close(); 
    }); 
}); 

我試圖用我的兩個getLocation()功能,只使用window.opener.location.href但是,對於所有的電腦,但我的,它打破。 謝謝。

+0

如果他們是同域,這應該工作。你可以指向一個測試用例嗎? – 2011-05-10 20:00:04

+0

應該但不要。我沒有任何公開的站點可以放置測試頁面,但我會在OP中發佈完整的代碼。 – tjsimmons 2011-05-10 20:05:38

+0

他們在不同的子域名?同時檢查瀏覽器安全設置。 – 2011-05-10 20:54:46

回答

1

我想通了。我將深入到window.opener.location - 對於IE,我應該停止它,將其轉換爲字符串,並稱它爲好。這是我做的,現在它可以工作。

因此,而不是window.opener.location.href,我只是使用window.opener.location.toString()爲IE。

+0

+1提供您的解決方案 – Thariama 2013-03-15 10:31:30