在下面的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>
由于 莱恩
答案 0 :(得分:0)
您希望您的用户能够在网页浏览中与awebsite.com进行互动吗?
如果您只是想显示网站的内容(不太可能),您可以在其上放置一个透明的div,以防止接收点击。然后点击将转到您的处理程序。
否则,awebsite.com默认会消耗任何点击,接下来会发生什么取决于它对它们的作用。一方面,您可以收听某些DOM事件,例如newwindow
,如webview documentation中所述。但这很难适合你的账单。最可靠的方法是使用webview的executeScript
方法将点击处理程序注入awebsite.com。这对你有用吗?