1

これを説明するのは難しいですが、試してみます

マシンにローカル Apache があります。Apache 内には、 folderafolderbの 2 つのフォルダーがあります。foldera/a.htmlには、 folderb/ b.htmlを指す iframe を含むページがあります。b.html内には、次のコードを実行する href へのリンクがあります。

function go() {
    document.location.replace('c.html');
}

Chromeを使用してhttp://mymachine.com/foldera/a.htmlに移動すると、リンクをクリックすると iframe がfolderb/c.htmlに移動します。これは予想される動作です。

奇妙なことは次のとおりです。

QWebView を備えた QtApp があります。foldera /a.htmlファイルに移動し、次の JavaScript コードを実行します。

var a = document.querySelector('#ifrm').contentWindow.document.querySelector('a')
myLib.doClick(a)

doClick は、オブジェクト内で「クリック」する関数です。

奇妙なことに、これは私のiframeがfoldera/c.htmlに行こうとすることです。置換機能は、それが間違った場所、親ウィンドウの場所にあると考え、URLの最後のビットを置き換えます(b.html -> c.html )

クリック関数のコードは、他の場合でもうまく機能しています

 click: function (target ) {
    relatedTarget = relatedTarget || null;
    var customEvent = document.createEvent("MouseEvents");
    customEvent.initMouseEvent('click', true, true, window, detail,
                 0, 0, 0, 0,
                 false, false, false, false,
                 0, null);
     target.dispatchEvent(customEvent);
}

ウィンドウドキュメントを iframe.contentWindow と iframe.contentWindow.document に変更しようとしましたが、同じ動作が得られます

これは予想される動作ですか?それが本当のバグかどうか知っている人もいますか? 他にできることはありますか?

すべての回答に感謝します

4

0 に答える 0