2012-01-06 21 views
1

我正在尝试使用Javascript动态更改Facebook发送按钮的URL,但迄今为止我没有成功。动态更改Facebook发送按钮的URL

我有一个设置了几个输入的页面,我希望发送按钮的URL在发送它之前将字段值作为参数。问题是当我将发送按钮添加到页面时,它会在里面生成iframe代码,并且即使稍后修改href参数,iframe仍然保留原始链接。我想解决方案是刷新发送按钮不知何故,或者在页面加载后添加它,一旦字段完成,但我无法弄清楚。

感谢您的帮助。

+1

你究竟想要完成什么?例如, – 2012-01-06 11:20:27

+0

,我有一个名字输入。如果你把Julio放进去,发送按钮应该发送URL http://www.myurl?name = Julio – user1134149 2012-01-06 11:28:39

+0

当输入改变时,用新参数重新渲染发送按钮iframe,然后使用'FB.XFBML.parse ();' – 2012-01-06 11:51:07

回答

1

你不能这样做。 JavaScript不能用于控制与您不同的域名上的iFrame。这是由于Same Origin Policy

你可以做的是改变你发送按钮xfbml标签的参数,然后调用FB.XFBML.parse();,这样按钮就使用新的参数。

+0

谢谢,这帮助我改变了URL。现在我的问题是,Facebook的发送按钮似乎剥离了URL字符串的参数...即:http://www.myurl.com?x=1&y=2变成http://www.myurl.com ?x = 1&fb_source = message ... – user1134149 2012-01-06 16:00:40

+0

我看不出为什么会发生这种情况。但是,如果FB只允许一个参数,请使用默认编码以外的编码。例如,你可以做'myurl.com?myparams = x_1 | y_2'。这会将'x_1 | y_2'视为'myparams'的值,然后您会相应地进行解析。 – 2012-01-06 16:04:07

+0

该解决方案可以工作,很不幸,我已经有第一个参数,这是我的页面的ID,所以我不能破解它...我试图添加#而不是&虽然,但FB也摆脱它。 – user1134149 2012-01-06 16:08:02

1

您可以尝试使用类似按钮的iFrame版本代替XFBML版本。类似的按钮可以通过AJAX调用在表单提交之后被加载到页面中,在该AJAX调用中,您已经传递了表单中填充的数据。

+0

谢谢。这听起来像可以工作,问题是我不能使用任何服务器端脚本文件。它只能在HTML和JS中完成,在同一页上。 – user1134149 2012-01-06 11:42:26