2

HTML デスクトップ通知を使用して Chrome 拡張機能を開発していますが、表示されたときに JavaScript を実行していないように見えます。複雑な JS から始めて、テストを次のように縮小しました。

<!DOCTYPE html>
<head>
    <title>notification</title>
</head>
<body>
    <script>document.write("content")</script>
    <img src='notification.png'><p>Yep!</p><p id="test"></p>
</body>
</html>

ハードコーディングしたものはすべて表示されますが、DOM 操作 (または単純な document.write) は機能していません。JSを別のファイルに入れようとしましたが、うまくいきませんでした。現在の Chrome のバージョンは 23.0.1271.64 (Apple v.) です。

手伝って頂けますか?

[更新] これは manifest.json です:

{
  "name": "BB",
  "version": "1.0",
  "manifest_version": 2,
  "description": "",
  "icons": {"48": "BB.png"},
  "browser_action": {
    "default_title": "BB",
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "background": {
    "scripts": ["bkg.js"]
  },
  "permissions": [
    "notifications"
  ],
  "web_accessible_resources": [
    "notification.html","popup.html","popup.js"
  ]
}
4

1 に答える 1

5

Content Security Policy (CSP)のため、外部スクリプトを使用する必要があります。

これが私がそれを機能させた方法です:

background.js

var notification = webkitNotifications.createHTMLNotification('notification.html');
notification.show();

通知.html

<!DOCTYPE html>
<head>
  <title>notification</title>
  <script src="notification.js"></script>
</head>
<body>
    <img src='notification.png'><p>Yep!</p><p id="test"></p>
</body>
</html>

そして最後にnotification.jsです。ページが読み込まれるまで待機するイベント リスナーを追加することが重要です。

document.addEventListener('DOMContentLoaded', function() {
  document.getElementById('test').innerHTML = 'test';
});

p次に、タグのテキストにテスト コンテンツを入力する必要があります。

ちなみに、notification.htmlを に追加する必要はないと思いますweb_accessible_resources

于 2012-11-08T09:04:02.507 に答える