Доступ к междоменному вложенному iframe из основного iframe - PullRequest
1 голос
/ 09 июля 2010

У меня есть страница с междоменным iframe. На странице, загруженной в iframe, есть кнопка печати, которая запускает некоторый javascript для печати iframe с именем printFrame, который находится на странице (на вложенной странице, а не на родительской странице). Когда я нажимаю на кнопку, в FF это работает, но IE выдает мне ошибку: frames.printFrame имеет значение null или не является объектом. Я не совсем понимаю. Код не пытается получить доступ к родительскому документу, почему он не работает?

Код вылетает в строке 9 файла iframedoc.html, когда я пытаюсь получить доступ к printframe

Родительский документ HTML:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <iframe src="http://www.otherdomain.com/iframeDoc.html"/>
    </body>
</html>

iframedoc.html:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript">

function printContent(){
    frames['printFrame'].focus();
    var printFrameDiv = frames['printFrame'].document.getElementById("printDiv");
    printFrameDiv.innerHTML = document.getElementById('printableContent').innerHTML;
    frames['printFrame'].print();
    window.focus();
}
</script>
</head>
<body>
<iframe id="printFrame" name="printFrame" src="/printFrame.html"></iframe>

<div id="mainContent">
    <div id="printableContent">
        My printable content is here
    </div>
    <div id="nonPrintableContent">
        Content that I dont want to print is here
    </div>
    <a href="javascript:void(0)" onclick="printContent()">Print</a>
</body>
</html>
...