これを説明するのは難しいですが、試してみます
マシンにローカル Apache があります。Apache 内には、 folderaとfolderbの 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 に変更しようとしましたが、同じ動作が得られます
これは予想される動作ですか?それが本当のバグかどうか知っている人もいますか? 他にできることはありますか?
すべての回答に感謝します