单击<webview>内部不触发外部<div> </div> </webview>上的EventListener

时间:2014-01-24 14:14:07

标签: webview google-chrome-app

在下面的javascript中,我有一个事件监听器,它是通过点击.content-container触发的,可以在提供的html中看到。

我的问题是,通过<webview>可见的内容中的点击不会触发我的事件监听器。有意义的是,它不会触发应用程序中的click事件,但我的问题是如何让它触发click事件?

document.querySelector('.content-container').addEventListener("click", function (event) {
    if ( event.target.classList.contains('toggle-nav') && !event.currentTarget.classList.contains('open') ) {
        event.currentTarget.classList.add('open');
    } else {
        event.currentTarget.classList.remove('open');
    }
}, false);

-

    <div class="content-container">
        <div class="titlebar">
            <button class="toggle-nav">toggle</button>
            <div class="title">Toolbar</div>
            <i class="icon search">icon</i>
        </div>
        <div class="toolbar">
            <i class="icon menu">icon</i>
            <i class="icon menu">icon</i>
            <button class="toggle-content-secondary">toggle</button>
        </div>
        <div class="content">
            <div id="contentareamain" class="primary">
                <webview id="foo" src="http://awebsite.com/" style="width: 100%; height: 100%; position: absolute;"></webview>
            </div>
            <div class="secondary">
                Extra Content
            </div>
        </div>
    </div>

由于 莱恩

1 个答案:

答案 0 :(得分:0)

您希望您的用户能够在网页浏览中与awebsite.com进行互动吗?

如果您只是想显示网站的内容(不太可能),您可以在其上放置一个透明的div,以防止接收点击。然后点击将转到您的处理程序。

否则,awebsite.com默认会消耗任何点击,接下来会发生什么取决于它对它们的作用。一方面,您可以收听某些DOM事件,例如newwindow,如webview documentation中所述。但这很难适合你的账单。最可靠的方法是使用webview的executeScript方法将点击处理程序注入awebsite.com。这对你有用吗?