この例に従って、自分の Web サイトに SkyScanner ウィジェットを含めています。
http://business.skyscanner.net/portal/en-GB/Documentation/Widgets
何らかの理由で、空の div を取得するだけです。これはキーと関係があるのでしょうか? SkyScanner から取得したウィジェット キーのアクティベーション リンクをクリックすると、次のようなページが表示されました。
説明: サーバーでアプリケーション エラーが発生しました。このアプリケーションの現在のカスタム エラー設定では、アプリケーション エラーの詳細をリモートで表示できません (セキュリティ上の理由から)。ただし、ローカル サーバー マシンで実行されているブラウザで表示することはできます。
詳細: この特定のエラー メッセージの詳細をリモート マシンで表示できるようにするには、現在の Web アプリケーションのルート ディレクトリにある "web.config" 構成ファイル内にタグを作成してください。次に、このタグの「モード」属性を「オフ」に設定する必要があります。
次のコードで web.config ファイルを作成しました。
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Chromeで「要素の検査」を見て、エラーが発生しました
キャッチされていない TypeError: Object # has no method 'write' api.ashx?key=[KEY]:1
これはJSです:
var API_KEY = 'b7290ac3-1f9f-4575-88a7-89fed0c61f7f',
MAIN_URL = 'http://api.skyscanner.net/api.ashx?key=' + API_KEY;
function main(){
console.log('loaded module');
var snippet = new skyscanner.snippets.SearchPanelControl();
snippet.setCurrency('GBP');
snippet.setDeparture('uk');
snippet.draw(document.getElementById('snippet_searchpanel'));
};
function newWrite(str) {
$(str).appendTo('body');
}
var oldWrite = document.write;
document.write = newWrite;
function onMainSkyscannerScriptLoad(e) {
console.log('loaded main script');
skyscanner.loadAndWait('snippets', '1', {'nocss' : true}, main);
}
$('button').click(function() {
console.log('getting main script');
$.getScript(MAIN_URL, onMainSkyscannerScriptLoad);
});
また、これを使用してウィジェットをパーソナライズしました。
skyscanner.load("snippets","2");
function main(){
var snippet = new skyscanner.snippets.SearchPanelControl();
snippet.setShape("box300x250");
snippet.setCulture("en-GB");
snippet.setCurrency("USD");
snippet.setColourScheme("classicbluelight");
snippet.setProduct("flights","1");
snippet.setProduct("hotels","2");
snippet.setProduct("carhire","3");
snippet.draw(document.getElementById("snippet_searchpanel"));
}
skyscanner.setOnLoadCallback(main);