Chrome应用程序在Webview中的按钮/输入上添加点击事件
Chrome App add click events on button/input inside the Webview
我制作了这个chrome应用程序,它使用网络视图从某个链接加载内容。我的问题是,我不知道如何将点击或其他事件添加到元素中,例如按钮。我需要使用webview,所以在扩展中构建内容不是一个选项。我还需要与webview元素进行通信/更改,因为我需要从USB设备获取数据,并在webview中填充一些输入。
我要么尝试了所有我发现的东西,但没有运气,要么做得很糟糕。
Thx!
这是我的包的index.html
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="app.css">
<link rel="stylesheet" href="reset.css">
<script src="jquery.js"></script>
</head>
<body>
<webview id="webview" partition="persist:googlepluswidgets" style="width: 100%; height: 100%;" class="full trim" src="http://urlOfApplication.com" ></webview>
<script src="main.js"></script>
<script src="port.js"></script>
<script src="printer.js"></script>
</body>
Manifest.json
{
"name": "Tezaur - LOCAL",
"version": "1.0.4",
"description": "Tezaur Amanet App",
"permissions": ["webview", "serial","usb","videoCapture","fullscreen", "storage"],
"minimum_chrome_version": "23",
"manifest_version": 2,
"icons": {
"16": "gold-16.png",
"128": "gold-128.png"
},
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
background.js
chrome.app.runtime.onLaunched.addListener(function() {
// Center window on screen.
var screenWidth = screen.availWidth;
var screenHeight = screen.availHeight;
chrome.app.window.create('popup.html', {
// 'id': 'amanet-app',
'state' : 'maximized',
'resizable' : true,
'alwaysOnTop' : false,
state: 'maximized'
},
function(win) {
win.maximize();
// win.clearAttention();
// win.restore();
}
);
});
chrome.app.window.onClosed.addListener(function() {
// Do some simple clean-up tasks.
$.ajax({url:"http://tezaur-local/auth/logout", async:false});
//var expires = new Date();
// expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
//document.cookie = 'laravel_session=;path=/;expires=' + expires.toUTCString();
});
//chrome.app.window.canSetVisibleOnAllWorkspaces(false);
一种方法是使用webview.executeScript在webview
内部运行内容脚本,因为它可以访问webview
的DOM。
例如:
document.querySelector('webview').executeScript({
code: 'document.getElementById("button-id").onclick = function() { /* click handler */ }',
function(results) { if (results && results.length) { /* successful script injection */ }
});
相关文章:
- 为具有相同类的多个输入添加、移除和添加一个类
- 为收音机点击的输入添加值,然后删除
- 单击向输入添加文本值的链接
- 为数字输入添加特殊字符
- 敲除-将用户输入添加到表中的问题
- 只选中一个复选框,然后为选中的输入添加类
- 将 html 输入添加到表中
- 将表单中的输入添加到同一页面中的表中,而无需重新加载
- 将用户输入添加到数组中并在单击时显示
- 显示输入,然后将输入添加到剪贴板ie11
- Javascript:根据用户输入添加到静态URL;添加#xyz
- 通过jquery为mvc项目中动态添加的输入添加验证规则
- 未将标准输入添加到Angularjs Form$Scope中
- jQuery在单击时向输入添加文本
- 当使用AngularJS将新输入添加到另一个输入字段时,如何清除输入字段中的值
- 复选框将输入添加到文本框总选择和总选择成本
- Blueimp为多个输入添加了上传触发器
- 在JavaScript中单击按钮时将用户输入添加到列表
- 表单:如何为新添加的输入添加验证规则
- 通过单击向输入添加值