1

这很难解释,但我会尝试

我的机器上有一个本地 apache。在 apache 中,我有 2 个文件夹,folderafolderb。在foldera/a.html我有一个 iframe 指向folderb/b.html的页面。在b.html中有一个链接,其 href 执行以下代码:

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

如果我使用Chrome,然后转到http://mymachine.com/foldera/a.html单击链接,iframe 会转到folderb/c.html,这是预期的行为。

奇怪的是

我有一个带有 QWebView 的 QtApp。它转到文件夹a/a.html文件并执行以下 javascript 代码:

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

doClick 是一个在对象中“单击”的函数。

奇怪的是,我的 iframe 试图转到文件夹 a/c.html替换函数认为它位于错误的位置,即父窗口的位置并替换了 url 的最后一位(b.html -> c.html )

click 函数的代码在任何其他情况下都运行良好

 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