我刚刚发现,当使用JavaScript创建iframe时,iframe version of the Facebook Like button不会遵循其查询参数,而不是直接包含在文档的HTML中。
请看一下我创建的这个jsFiddle:
我在上面链接的网址上生成了一个“赞”按钮,并首先完全按照提供的方式包含HTML。然后,我将其分解为创建并向DOM附加相同元素所需的JavaScript代码。
在“结果”窗口中,您将看到顶部按钮的HTML版本,以及下面的JavaScript创建版本。虽然src
属性的值对于两者(以及所有其他HTML属性)都是相同的,但是较低的按钮似乎不符合我传递的任何参数,例如{{1} }或colorscheme
。
有谁知道为什么会这样,或者对我如何避免这种行为有任何建议?
这里的用例是我正在创建HTML广告,其中包含“喜欢”按钮的iframe版本;要求是广告最初只能加载50KB的数据,然后在font
被触发后最多加载1MB。由于“赞”按钮单独重量超过50KB,因此我需要在window.onload
之后使用JavaScript构建iframe,而不是仅在广告的HTML中包含window.onload
元素。
答案 0 :(得分:1)
使用HTML添加网址时,会自动解码html实体。这不会在javascript中打盹。因此,您需要在将URL传递给javasript之前对其进行解码,例如:
like.src = 'http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2F&send=false&layout=standard&width=450&show_faces=false&action=like&colorscheme=dark&font=arial&height=35';
希望这有帮助
更新了JSfidle: http://jsfiddle.net/qQsCC/1/