あなたが抱えている問題は、コードが呼び出すことを期待しているメソッドがスコープ内にないことです。したがって、コードを少し変更すると、エラーが解消されます。このコードで問題が解決するはずです。http://pastebin.com/RrQ2848j
コールバック関数を返し、それを変数として割り当てていることに注意してください。他にも方法はありますが、グローバル スコープで何かを呼び出す必要があります。
これは、AJAX(XHR) リクエストが yourdomain.com で実行中に google.com にアクセスしようとすると、同一オリジン ポリシーに違反するため、スクリプトとデータを取得するためにスクリプト ブロックが作成されるためです。スクリプトがダウンロードされると、グローバル スコープで関数を呼び出してデータを渡すことが期待されます。その関数は、次に示すように、スクリプト ブロックを作成するときに SRC 属性のクエリ文字列で指定されます。
function runPagespeed() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
var query = [
'url=' + YN_URL,
'callback=runPagespeedCallbacks',
'key=' + API_KEY
].join('&');
s.src = API_URL + query;
document.head.insertBefore(s, null);
}