我使用jQuery根據其內容更改了iframe的大小,因此它不顯示滾動條。該腳本非常簡單,它在IE9中工作正常,但在Chrome中沒有任何反應,我添加了一個小的「警報」僅用於debbuging,並且我發現var「cont_height」未在Chrome中定義。iframe內容高度null chrome
所有的文件都在我的電腦中,包括在iframe中加載的頁面,所以不應存在跨域問題。
chrome中的調試工具給了我這個錯誤:「阻止一個帶有原點的幀」null「訪問一個原點爲」null「的幀,協議,域和端口必須匹配」。
下面是代碼
<script type="text/javascript" src="../js/jquery-1.10.2.min.js"> </script>
<script type="text/javascript">
$(document).ready(function() {
$('#mainframe').load(function() {
var cont_height = $(this).contents().height();
alert(cont_height);
$(this).height(cont_height);
});
});
</script>
我用「$(窗口).load」,而不是文件準備好嘗試,但我不認爲這是一個時機的問題,我不能夠訪問數據由於權限等原因。我會很感激你能給我的任何提示。解決方案也在javascript中。
Chrome可以直接運行文件,沒有一個網絡服務器的問題。它不喜歡這個域是'null'(因爲沒有域)。 – Halcyon
我明白了,我可以設置一個虛假的域名或者其他東西嗎?,我會使用本地文件進行評估。 – Faito
@FritsvanCampen所說的是,如果你在文件系統上用('file:/// C/myFile.html')瀏覽你的html,它有一個空的原點並導致這個問題。您可以在本地Web服務器上運行這些服務器,然後將其排序('http:// localhost/myFile.html')。如果你想要一個簡單的Web服務器來使用,並且沒有IIS,Apache或其他的東西在運行,你可以安裝python並在你的html文件所在的路徑中運行'python -m SimpleHTTPServer' 。它是一個真正輕量級的本地Web服務器。 –