私はChromeアプリケーションの作成を始めようとしています。何らかの理由で私はクロムのアプリとして表示するときにjavascriptは動作しませんが、ウェブページとして正常に動作します。ここに私の問題の最も単純な例があります。javascriptがchrome-appで動作しない
open index.html with chromeは正常に動作します - ボタンを押すと、 "hello world"文字列が "CLICK"になります。クロムアプリとして実行すると、ボタンを押すと何も起こりません。
manifest.jsonを:
{
"manifest_version": 2,
"name": "My first app",
"version": "0.0.1",
"app": {
"background": {
"scripts": ["main.js"]
}
}
}
main.js
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
bounds: {
width: 800,
height: 609
}
});
});
のindex.html:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<button type="button" onclick="myFunction()">click me</button>
<script>
function myFunction(){
document.getElementById("testdiv").innerHTML = "CLICK"
}
</script>
<div id="testdiv">hello world</div>
</body>
</html>
onclick = "myFunction()"のようなものは、インラインJSとしてカウントされるようです。だから、私もスクリプトからボタンリスナを追加する必要がありました。 – user1816847
インラインスクリプトが許可されていないことを示すエラーメッセージもコンソールに表示されます。 Chrome搭載アプリを開発するときは、コンソールがあなたの親友になるはずです。また、1つのアプリに対して可能な複数のコンソールを区別する必要があります.1つはバックグラウンドページ用で、もう1つは開いているアプリウィンドウごとに1つです。これらはすべて、開発者モードであなたのアプリケーションの下に 'chrome:// extensions'で表示されます。メニューがアプリによってオーバーライドされていない限り、アプリの任意のウィンドウのコンテキストメニューからアクセスすることもできます。 –