9

私はまだChrome拡張機能を使って非常に新しく、テストを行っています。現在、送信がクリックされたときにアラートを作成したい短いフォームのpopup.htmlがあります。なぜそれが機能しないのか、私は一生理解できません。

<!doctype html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="popup.js">

</script>
</head>
<body onload="alert('open')">
<form>
Username: <input type='text' id="username" name='username'></input>
Password: <input type='password' id='password' />
          <button onclick="alert('test');return false;">Login</button>
</form>
</body>
</html>

助言がありますか?

編集:私はbodyタグにonloadを作成して、アラートがそこで開くかどうかを確認しましたが、開きません。ポップアップ.jsで、window.onloadでアラートを開いていますが、それは機能します。

4

2 に答える 2

11

false を返すと、関数は停止します。ステートメントの最後に return false を配置すると、アラートが機能するはずです。または、それを取り出すことができます。

 <button onclick="alert('test')">Login</button>

更新 いくつかの調査の結果、次のことがわかりました...

インライン JavaScript は実行されません

インライン JavaScript や、eval などの文字列から JavaScript への危険なメソッドは実行されません。この制限により、インライン ブロックとインライン イベント ハンドラの両方が禁止されます > (例: )。

ソースはこちら

于 2012-04-08T18:02:00.310 に答える
4

これもあなたの問題かもしれません:インラインスクリプトは「manifest_version」では機能しません:2

だから、私はテストし、次のマニフェストで、あなたのコードは動作します!

{
  "name": "test",
  "version": "1.0",
  "description": "test",
  "manifest_version":1,
  "browser_action": {
    "default_icon": "images/padlock.png",
    "default_popup":"html/popup.html"
  },
  "permissions": [
    "tabs", 
    "http://*/*"
  ]
}

とにかく.. popup.js でアクションを処理する方がよいでしょうが、最初に popup.html のボタン属性を次のように変更します。<button type="button">Login</button>

popup.js:

$(document).ready(function(){
    $(":button").click(function(){
        alert("test");
        //more code here...
    });
});

<head>タグの popup.html のpopup.jsのすぐ上にjquery.jsを忘れずに挿入してください。

<head>
<title>Test</title>
<script type="text/javascript" src="../js/jquery.js"></script> 
<script type="text/javascript" src="../js/popup.js"></script>
</head>

役に立ちましたら幸いです。よろしくジム..

于 2012-04-09T10:45:10.573 に答える