2

1週間前からこの問題を抱えています

私は非常に単純なことをするのだろうか:

iframe 内に含まれる XML コンテンツを抽出し、親ドキュメント内でそれを使用します (私の場合、署名のために XML を ActiveX に送信します) 。

これは、ミニ プロジェクトの zipを見つけるための URL です。

私のターゲットブラウザはIE9/10です。

親文書:

            <!-- Main hero unit for a primary marketing message or call to action -->
        <div class="hero-unit">
            <h1>Parapheur 5.0</h1>
            <div class="alert-block">Please use buttons for actions</div>
            <div class="btn-group">
                <a class="btn btn-success btn-mini" onclick="javascript:expandViewport('viewport1');">Expand viewport &raquo;</a>
                <a class="btn btn-info btn-mini" onclick="javascript:collapseViewport('viewport1');">Collapse viewport &raquo;</a>
                <a class="btn btn-primary btn-mini" onclick="javascript:extractXml('#viewport1');">Extract XML &raquo;</a>
            </div>
            <div class="alert-block"></div>
            <iframe id="viewport1" src="xml/data.xml" width="1024px" height=""></iframe>
            <div class="alert-block"></div>
        </div>
        <div id="content" class="alert-info"></div>

アプリケーション.js :

function extractXml(id,content) {
console.log("Starting extraction of XML from within IFrame : " + id);
/*
var lastIndexOfSlash = document.getElementById(id).src.lastIndexOf("/");
var doc = document.getElementById(id).src.substring(lastIndexOfSlash);
$.get('xml/'+doc,function(xml){
                    console.log(xml);
                });
*/
console.log($(id).contentDocument);}
4

2 に答える 2

0

IE9 で iframe から xml をロードする唯一の方法は、次のコード行を実行することです。

document.getElementById("viewport1").contentWindow.document.firstChi‌​ld.nextSibling.textContent
于 2012-09-03T15:14:38.820 に答える
0

以下のように、IE9 で iframe xml にアクセスできます。

var frameIE = document.getElementById("yourIframeElementID");
var textXml = frameIE.contentWindow.document.firstChild.innerText;//Get the text
var regex = new RegExp('- <', 'g');
textXml = textXml.replace(regex, "<");
var xml = $.parseXML(textXml);//Use jquery to parse xml
xml = $(responseData);
//Now u can use this xml object to find xml nodes inside it using jquery...

を使用するときは、この方法を使用する必要がありました<meta http-equiv="X-UA-Compatible" content="IE=8" />。この場合、IE9 は互換モードで動作し、 へwindow.frames.<your_frame_name>.document.XMLDocumentのアクセスも許可せず、$("#iframeId").contents()動作しません。

タグがない場合は<meta http-equiv="X-UA-Compatible"... />、次のコードを使用できます。

var contents = window.frames.your_frame_name.document.XMLDocument;
var xml = $(contents);
//use this 'xml' object to access its nodes using jquery.

ただし、上記のすべてが機能するには、フレームが同じオリジンまたはドメイン内のリソースを指している必要があります。

于 2013-04-05T11:49:50.467 に答える