我正在尝试动态加载Skyscanner API,但似乎无法正常工作。我尝试了我能想到的所有可能的方法,但结果都是内容消失了。
我尝试了console.log,但没有结果;我尝试了chrome开发者工具中的元素,虽然所有内容的css保持不变,但内容仍然消失了(我认为可能是在html/body上添加了display:none之类的)。我尝试了Google的所有异步技巧,但仍然是空白页。我尝试了所有用于异步加载的js插件,但结果仍然相同。
Skyscanner的API文档很差,虽然他们提供了回调函数,但它的工作方式与Google的API回调不同。
例如:http://jsfiddle.net/7TWYC/ 在head部分加载API的示例:http://jsfiddle.net/s2HkR/ 那么,我如何在单击按钮或异步方式下加载API?而不在HEAD部分放置文件。如果有一种方法可以防止document.write使页面变空白或其他任何方式,我不介意使用纯js、jQuery或PHP。
我尝试了console.log,但没有结果;我尝试了chrome开发者工具中的元素,虽然所有内容的css保持不变,但内容仍然消失了(我认为可能是在html/body上添加了display:none之类的)。我尝试了Google的所有异步技巧,但仍然是空白页。我尝试了所有用于异步加载的js插件,但结果仍然相同。
Skyscanner的API文档很差,虽然他们提供了回调函数,但它的工作方式与Google的API回调不同。
例如:http://jsfiddle.net/7TWYC/ 在head部分加载API的示例:http://jsfiddle.net/s2HkR/ 那么,我如何在单击按钮或异步方式下加载API?而不在HEAD部分放置文件。如果有一种方法可以防止document.write使页面变空白或其他任何方式,我不介意使用纯js、jQuery或PHP。
编辑:
我已经将赏金增加到250,之前是50。
Orlando Leite提供了一个非常接近的想法来使异步API加载,尽管一些功能无法正常工作,例如选择日期和设置样式。
我正在寻找一个答案,可以使用所有功能,以便它能够像在加载时一样工作。
这是Orlando更新的fiddle链接: http://jsfiddle.net/cxysA/12/
-
Gijs答案的第二次编辑:
Gijs提到了两个关于覆盖document.write的链接。这听起来是个很棒的想法,但我认为我所尝试的是不可能实现的。
我使用了John Resig的方法来防止document.write,可以在这里找到:http://ejohn.org/blog/xhtml-documentwrite-and-adsense/
当我使用这种方法时,我成功地加载了API,但snippets.js文件根本没有加载。
Fiddle:http://jsfiddle.net/9HX7N/