【发布时间】:2015-08-12 09:42:34
【问题描述】:
目前我有一个小部件,您可以在页面上的某处插入以下内容
<script src='http://domain.com/public/jsonp/widget.js' data-id='LFKkv' data-width='240'></script>
我想在页面加载后动态加载它,我尝试过如下所示的 jQuery $.getScript,但失败得很惨:
$.getScript("http://domain.com/public/jsonp/widget.js' data-id='LFKkv' data-width='240'", function(data){ ... })
因为我假设的数据属性之间的 URL 上有空格。
我可以使用 ajax 但我不知道如何通过 jQuery ajax 调用传递数据属性?如何动态加载数据属性完整的上述小部件?
编辑: 包括我的小部件脚本的相关部分,以便您可以看到我的小部件如何获取数据属性:
<script>
var scriptName = "widget.js";
TGW = window.jQuery.noConflict(true);
var allScripts = document.getElementsByTagName('script');
var targetScripts = [];
for (var i in allScripts) {
var name = allScripts[i].src
if(name && name.indexOf(scriptName) > 0)
targetScripts.push(allScripts[i]);
}
scriptTag = targetScripts[targetScripts.length - 1];
// Getting the data attributes here
jScript = TGW(scriptTag);
id = jScript.data("id");
widget_width = jScript.data("width");
</script>
【问题讨论】:
-
$("head").append("<script data-id='LFKkv' data-width='240'><\/script>").prop("src", 'http://domain.com/public/jsonp/widget.js'); -
@dandavis 恐怕这没有任何作用......
-
@superphonic 可以在
widget.js中包含js,其中小部件在问题加载时访问script元素的data-*属性? -
@guest271314 我不确定你刚才说什么,抱歉。
-
@superphonic 可以访问附加到文档的
script元素的data-*属性的widget.js的一部分?
标签: javascript jquery ajax jsonp