即时消息使用http://sharethis.com/按钮为网站上的用户提供了一种共享内容的简单方法。
他们在此处提供有关“自定义按钮”的信息:http : //help.sharethis.com/customization/custom- buttons
它看起来像是要指定URL,在示例中,它们都只有html,如下所示:
<span class="st_sharethis" st_url="http://mycustomurl.com" st_title="Sharing Rocks!" displayText="ShareThis"></span>
但是我需要能够动态地动态创建按钮,而无需重新加载页面。
因此,在我正在构建的Flash应用程序中,我有一个“共享按钮”,可触发网页上的javascript函数,从而使“弹出” div淡入我要显示共享按钮的屏幕中央。根据某人单击的共享按钮,将需要具有动态创建的URL。
重要的是,如果他们关闭对话框,然后再次单击共享按钮,希望代码将使用新的按钮/标题用新的按钮覆盖旧代码。
因此,我创建了我从Flash调用的javascript函数,同时从Flash传递了网址。我将脚本和所有内容放置在“弹出” div中,希望按钮将在该div中呈现。
function shareChannel(theurl) { //I cant seem to find an example of what to put here to load the buttons, and give them a custom URL and title //finally display the popup after the buttons are made and setup. displaypopup(); }
有人可以发布一个示例,说明我如何能够在不重新加载页面的情况下做到这一点吗?
编辑:@Cubed
<script type="text/javascript"> function shareChannel(chaan) { document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan); document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!'); stButtons.locateElements(); centerPopupThree(); loadPopupThree(); } </script>
基本上什么也没发生。我讨厌使用javascript,因为我真的不知道如何获取错误消息或调试。当我使用flex时,我有一个很棒的调试器/控制台可以解决。因此,抱歉我无法提供更多信息。我确实注意到,当我删除
document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan); document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!');
出现弹出窗口。
但是,如果我在函数中包含上面的setAttribute代码,则弹出窗口将永远不会出现,因此我假设该代码中的某些内容破坏了它。有什么建议?或者至少可以使用chrome告诉我错误是什么?我尝试了检查元素控制台,但是当我触发该功能时,那里什么也没有出现。
另外,在我的代码顶部,他们让我使用了:
<script type="text/javascript">var switchTo5x=true;</script> <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"> </script><script type="text/javascript">stLight.options({publisher:'mypubidgoeshere'});</script>
我应该使用 stLight.locateElements();而不是stButtons.locateElements();
stLight.locateElements();
stButtons.locateElements();
我一直在使用
通过AJAX加载内容后生成任何新按钮的函数,我想它也将适用于此。
更好的解决方案:
确保您的<div>并确保所有<span>都有ID,否则可以给它们提供类,但是您需要遍历它们。
<div>
<span>
function shareChannel(theurl, thetitle) { document.getElementById('spanID1').setAttribute('st_url', theurl); document.getElementById('spanID1').setAttribute('st_title', thetitle); stButtons.locateElements(); //finally display the popup after the buttons are made and setup. displaypopup(); }