Fru*_*nsi 11 javascript google-plus-one
谷歌+1按钮嵌入代码可以具有配置的javascript对象(例如" {lang:'de'}
").
在普通的javascript中,这个对象将被创建并立即销毁,因为它没有被任何东西引用.
我想知道google脚本如何访问这个对象?
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'de'}
</script>
Run Code Online (Sandbox Code Playgroud)
它似乎有效 - 除非您动态地将包含配置对象的脚本标记写入DOM.
由于谷歌来源被混淆,我不知道他们是如何做到的.我如何做到这一点是使用JQuery找到标签,然后使用.innerHTML将其作为字符串,然后使用JSON.parse安全地解析对象.
<script ...>
{"lang" : "de"}
</script>
...
var data= JSON.parse(
$('script[src="https://apis.google.com/js/plusone.js"]')[0].innerHTML)
alert(data.lang)
Run Code Online (Sandbox Code Playgroud)
小智 4
小组件脚本在 document.scripts 中运行,并在 scr 属性中使用字符串“/js/plusone.js”搜索脚本。在此修剪字符串之后并创建匿名函数。它的结果是具有配置属性的对象。
if (Gb[u] > 0) {
for (var Hb = "", Ib = 0; Ib < Gb[u]; Ib++) {
var Jb = Gb[Ib][nb]("src");
Jb && Jb[q]("/js/plusone.js") != -1 && (Hb = Q.d.rb(Gb[Ib]));
}
Hb = Hb[Ea](/^\s+|\s+$/g, "");
Hb[q]("{") != 0 && (Hb = "{" + Hb + "}");
try {
var Kb = (new Function("return (" + Hb + "\n)"))(), Mb;
for (Mb in Kb) i.__GOOGLEAPIS.gwidget[Mb] = Kb[Mb];
} catch (Nb) {}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
534 次 |
最近记录: |