Chrome拡張機能でチャンネルAPIを使用しています。それはそうGoogle App Engine Channel API(jsapi)がChrome拡張機能に読み込まれないのはなぜですか?
Include the following in your html page before any JavaScript code that refers to it:
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
と言うGoogle App Engine Channel API Javascript Reference (Python)ページで
、私は私のoptions.htmlファイルのヘッダーにすることを置く:
<html>
<head>
<title>Extension Options</title>
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
</head>
が、ChromeはjsapiFailed to load resource
エラーがスローされます。私は間違って何をしていますか?私はこのようなJSAPIの呼び出しを更新Moisheの答えを1として
更新:
<head>
<title>Extension Options</title>
<!-- this does not work because it is local
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
-->
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
</head>
アップデートは
私はonopen
およびその他のプロパティを追加しました。今すぐonopen
アラートが表示されますが、私はevt.data
アラートを取得していません。私は間違って何をしていますか? Chromeの拡張機能で
<html>
<head>
<title>Extension Options</title>
<!-- this does not work because it is local url
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
-->
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
</head>
<body>
<p>Enter your gmail address:</p>
<textarea id="getEmail" style="margin-bottom: 4px; width: 250px; height: 20px">
</textarea><br />
<button id="save">Save</button>
<!--<button id="save">Clear</button>-->
<script>
document.getElementById("getEmail").placeholder = "your gmail address" ;
//save entered gmail address
document.getElementById("save").addEventListener
(
"click",
function()
{
var userEmail = document.getElementById("getEmail").value;
var formData = new FormData();
formData.append("extension_user", userEmail);
alert("after formData.append")
var channel;
var socket;
var handler =
{
onopen: function() { alert("onopen") },
onerror: function() { alert("onerror") },
onclose: function() { alert("onclose") },
onmessage:
function (evt)
{
//evt.data will be what the server sends in channel.send_message
console.log("evt.data received from authhandler: " + evt.data);
alert("evt.data is: " + evt.data)
}
};
var xhr = new XMLHttpRequest();
//changed to lowercase
xhr.onreadystatechange = function()
{
//alert("xhr.onReadyStateChange")
//error handling etc not included
if (xhr.readyState == 4 && xhr.status == 200)
{
token = xhr.responseText;
alert("token: " + token)
channel = new goog.appengine.Channel(token);
socket = channel.open(handler);
}
};
xhr.open("POST", "http://ting-1.appspot.com/authsender", true);
xhr.send(formData);
console.log("formData sent to authsender: " + formData);
}, false
)
</script>
</body>
</html>
これはdev_appserverを使用しているか、本番環境で使用していますか? Chromeの開発ツールの[ネットワーク]タブの詳細を教えてください。 –
これは生産中です。まず「ネットワーク」タブには何もなかった。指示されたとおりにページをリロードし、options.htmlとjsapi:name:options.htmlの2つの項目を表示します。メソッド:GET;ステータス:(キャッシュから);タイプ:text/html;サイズ:(キャッシュから);時間:3msと 'jsapi/_ah/channel; GET、(失敗);未定義; 30B; 5ms'ありがとう! – Zeynel
あなたのappidを教えてもらえますか? 「http://your-app-id.appspot.com/_ah/channel/jsapi」に直接移動するとどうなりますか? –