当前位置: 首页 > 面试题库 >

如何使用带有javascript函数的自定义URL动态创建“共享此按钮”?

长孙深
2023-03-14
问题内容

即时消息使用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();


问题答案:

我一直在使用

stButtons.locateElements();

通过AJAX加载内容后生成任何新按钮的函数,我想它也将适用于此。

更好的解决方案:

确保您的<div>并确保所有<span>都有ID,否则可以给它们提供类,但是您需要遍历它们。

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();
    }


 类似资料:
  • 问题内容: 我想问一个与这个问题相同的问题,但使用SWT:是否有一种方法可以制作带有您自己的按钮图形的按钮,而不仅仅是按钮内的图像?如果不是,这是在Java中创建自定义按钮的另一种方法吗? 问题答案: public class ImageButton extends Canvas { private int mouse = 0; private boolean hit = false;

  • 我有一个简单的JSF按钮: 我想创建png图像,这将是按钮的视觉体。我唯一要更改的是按钮的标题,我每次使用按钮的属性时都会设置该标题。这可能吗?现在,当我加载JSF页面时,我只看到没有标签的空按钮。 P.S1我得到这样的结果:

  • 问题内容: 我正在一个项目中,我想为每个用户提供唯一的URL。例如, 到目前为止,我已经能够实现: 在这里,配置文件是我的操作,通过它可以获取用户名 但我想实现类似这样的功能,即 域名,然后是用户名。 像twitter一样: www.twitter.com/用户名 如何实现呢? 问题答案: 如果要在通配符映射中使用命名模式,则应在中配置以下内容: 现在假设bean具有一个property 和返回结

  • 问题内容: 我有这样的功能: 如何定义的,而不打字了他们中的每一个?当然,我宁愿传递一个参数,但是出于我的目的,这是不可能的。 问题答案: 您是否要在源文件中静态地单独定义它们?那么最好的选择是编写一个脚本来生成它们。 另一方面,如果您希望在运行时使用这些功能,则可以使用更高阶的功能。例如 您可以生成这些列表并再次在运行时进行存储。

  • 问题内容: 注意:我也在以下AngularJS邮件列表中发布了此问题:https ://groups.google.com/forum/#! topic/ angular/UC8_pZsdn2U 大家好, 我正在构建我的第一个AngularJS应用,并且对Javascript不太熟悉,因此任何指导都将不胜感激:) 我的应用程序有两个控制器,ClientController和CountryContr

  • 本文向大家介绍如何使用CSS创建自定义滚动条?,包括了如何使用CSS创建自定义滚动条?的使用技巧和注意事项,需要的朋友参考一下 要使用CSS创建自定义滚动条,代码如下- 示例