我是一名博主,我正在尝试在我的网站上上传一个小部件,我已从 here 获取了该小部件的代码
据我了解这个概念,我只需将代码复制/粘贴到 HTML 中即可。遗憾的是,这种方式行不通。
我认为它可能与我网站上的某些代码发生冲突,因此我在空 HTML 文件中对其进行了测试,但它再次不起作用。
我把代码放在一个片段中,希望有人能看一下,这样我就知道问题出在哪里。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>momondo flight widget</title>
</head>
<body>
<div id="mmd-flight-widget"></div>
<script type="text/javascript">(function initWidget() {
var options = {
layout: {
theme: "momondo"
, width: "300"
, height: "250"
},
airports: {
origin: "LON",
destination: "PAR"
},
settings: {
openNewWindow: true,
domain: "www.momondo.com",
source: ""
}
};
var settings = options.settings;
var airports = options.airports;
var layout = options.layout;
var encoding = null;
onWidgetLoad = function (f)
{
f("mmd-flight-widget", {
searchForms: [{
type: 1,
searchURL: "http://[DOMAIN][PATH][QUERY]" + (!!settings.source ? "&source=" + settings.source : ""),
openNewWindow: settings.openNewWindow,
currency: settings.currency,
segments: [
{
airports: [
{ code: airports.origin || "" },
{ code: airports.destination || "" }
]
},
{
airports: [
{ code: airports.destination || "" },
{ code: airports.origin || "" }
]
}
]
}]
});
};
var scr = document.createElement("script");
scr["src"] = "http://" + settings.domain + "/widget/searchform/v1.0/?dimensions=" + (layout.width && layout.height ? (layout.width + "x" + layout.height) : "generic") + "&types=1&callback=onWidgetLoad&theme=" + layout.theme;
var tag = document.getElementsByTagName("head");
if (tag && tag.length)
{
tag = tag[0];
tag.appendChild(scr);
}
})();
</script>
</body>
</html>
最佳答案
设置 scr["src"]
的 url 值以使用 https: 似乎可以解决问题
scr["src"] = "https://" + settings.domain + ...
这是一个working fiddle
关于JavaScript 小部件不适用于我的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972935/