2

これはまったくの初心者の質問だと思いますが、ここで基本が欠けているようです。私はコーディングが初めてではなく、さまざまな言語で生涯 (27 年) の経験がありますが、プラグインのプロセスは私を避けています。

私はphpとjsでカスタムブックマークシステムを開発しました。それはうまく機能し、開発中に何ヶ月も使用しています。

アクティブなタブでページの URL を取得し、それを php ハンドラーに渡したいだけです。Web サイトのスクリプトが HTML フォームをポップアップに返すようにします。機能する「はず」の方法は無数に考えられます。

私が見つけたすべてのコード例は、単純なタスクであるべきものを過度に複雑にしているようです。

要するに、私はただ欲しい:

<script type="text/javascript">
<!--
var loadurl = "http://my.site.com?theUrl=" + window.location;
location.href = loadurl;
//-->
</script>

そのページをポップアップに表示します。これまでのところ、私は途方に暮れています。ajax呼び出しなども試しました。誰かがこの単純なタスクを達成する方法を教えてくれますか? たぶん、情報を使って拡張機能を書き始めることができます。

記録として、私が見つけたほとんどの例はマニフェスト 2.0 では非推奨です。

4

1 に答える 1

0

マニフェスト 2.0 では、新しい機能contentSecurityPolicyが導入されています。デフォルトでは、すべての外部リソースがブロックされます。ベスト プラクティスとして、必要なすべてのアセット ファイルを拡張機能に含める必要があります。拡張機能とサービス (php 側) の間の通信は、XHR2 を使用したデータのみです。

したがって、ブックマーク拡張機能を機能させるには、次のようなものが必要だと思います。

  1. サービスのドメインを権限配列に追加します

    {
        ...
        permissions: ['*://my.site.com/*', 'tabs']
    }
    
  2. すべての JavaScript を からpopup.htmlに移動しpopup.jsます。ではpopup.js、ブックマーク サービスへの ajax リクエストを作成します。その他のドキュメントはこちら

    function addBookmark(url) {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "http://my.site.com/new_bookmark.php?url=" + encodeURIComponent(url), true);
    
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                var resp = xhr.responseText;
                // handle service result here
            }
        }
        xhr.send();
    }
    
    chrome.tabs.getSelected(null,function(tab) {
        addBookmark(tab.url);
    });
    
于 2012-08-27T09:45:24.227 に答える