を返すと私はいくつかの困難の自動投入<select>
<option>
とを抱えています返されている。クローム拡張 - クロスオリジンのXMLHttpRequest - 私はあなたが私を助けることができると思います:) 私はChromeの拡張機能(私の最初の1)を作成したHTML/JSON
default_popupページはindex.htmです。私は2つの<select>
(リストボックス?名前を覚えていない)ボックスがあります。ユーザが最初にエクステンションをクリックすると、PHPスクリプトへのXMLHttpRequestを実行し、MySQLデータベースから名前のリストを取得します。これは、の形で(のonLoad)リストを返し: <option>
何とか</option>
ユーザが最初にリストボックスからオプションを選択/選択し、それが別のXMLHttpRequestを実行し、第二リストボックス選択/自動-移入します。その後、ユーザーが2番目のリストボックスからオプションを選択すると、は最終的にのページにさらにいくつか詳細が表示されます。
私は、index.htmファイルを実行し、コードが正しく動作するかどうかを確認するだけでテストしました。ただし、拡張機能から表示しようとすると機能しません。 onLoadは最初のリストボックスを埋めるのではなく、最初のリストボックスからオプションを選択すると(テスト目的のためにボックスに入力したもの)、2番目のリストボックスには入力されません。
おそらく、権限エラーだったので、manifest.jsonファイルにドメインを追加しようとしました。マニフェストファイルでエラーが発生しているようです。私はXMLHttpRequestのために、このスクリプトを持っている私のdefault_popup(index.htmを)ファイルで
:
<script type="text/javascript">
function getClient(str,type)
{
if (str=="")
{
document.getElementById(type).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(type).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://(domain removed)/Extension/getInfo.php?q="+type+"&c="+str,true,"user","pass");
xmlhttp.send();
}
</script>
これは私のmanifest.jsonをファイルには、次のようになります。
{
"name": "Client Center Lite",
"version": "1.0",
"description": "blah",
"browser_action": {
"default_icon": "images/icon_19.png",
"default_popup": "index.htm",
"default_title": "Client Center Lite"
},
"icons":{
"128":"images/icon_128.png"
}
"permissions": {
"http://(domain removed)/"
},
}
私はこれをやっています正しく?拡張のポイントは、クライアントの詳細をすばやく表示できることです。この拡張は、.crxファイル内のローカルの従業員にのみ与えられ、オンラインでは配布されません。 PHP/MySQLを介してアクセスしているドメインは、Webからアクセスできますが、現在mysql_connect文字列にlocalhostを使用しています。 <option>
要素をJSONとしてエンコードして返す必要がありますか?もしそうなら、私はそれを行う方法として完全に手がかりではありません。
角カッコは、任意の効果を持っていませんでした。私はどんなウェブページの文脈の中でも働いていません、拡張子はその点で自己完結しています。私は正しい方向に進んでいますか?私はこのコードをbackground.htmページなどにする必要はありませんか?誰かがバックエンドのphp/mysqlスクリプトを読んで拡張機能に引き込む例はありますか?私はすでにいくつかを見てきましたが、明らかに彼らは私を私が必要とするところに連れて来なかったのです。 – Tyler
@Tylerこのコードはバックグラウンドページ内に移動する必要があります。 – serg