2013-12-22 21 views
5

私は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> 

答えて

7

だけでなく、Chrome Extensions Content-Security-Policyインラインスクリプトの使用を許可していません。

インラインJavaScriptは実行されません。この制限は、 インラインブロックとインラインイベントハンドラ(たとえば、)の両方を禁止します。

ページ内にjavascriptコードを使用する代わりに、自分のページにJavaScriptを含むスクリプトファイル(<script src="script.js" type="text/javascript"></script">)を含めるようにしてください。

希望するものがあります。

+0

onclick = "myFunction()"のようなものは、インラインJSとしてカウントされるようです。だから、私もスクリプトからボタンリスナを追加する必要がありました。 – user1816847

+2

インラインスクリプトが許可されていないことを示すエラーメッセージもコンソールに表示されます。 Chrome搭載アプリを開発するときは、コンソールがあなたの親友になるはずです。また、1つのアプリに対して可能な複数のコンソールを区別する必要があります.1つはバックグラウンドページ用で、もう1つは開いているアプリウィンドウごとに1つです。これらはすべて、開発者モードであなたのアプリケーションの下に 'chrome:// extensions'で表示されます。メニューがアプリによってオーバーライドされていない限り、アプリの任意のウィンドウのコンテキストメニューからアクセスすることもできます。 –

関連する問題