将twitter小部件与html锚一起使用<;a>;由javascript呈现的标记

将twitter小部件与html锚一起使用<;a>;由javascript呈现的标记,javascript,twitter,Javascript,Twitter,我使用的代码来自 我已经将步骤4中的JavaScript代码片段放入了一个名为tWidgit的函数中 此代码将文本超链接转换为Tweet按钮。当我硬编码Twitter HTML时,它是有效的,但对于我的JavaScript生成的链接,它不起作用。我确实在第36行设置了课程: tw.class=“twitter共享按钮” JavaScript为details元素设置一个监听器,并根据单击时每个摘要项的data属性创建一个超链接。我正在尝试制作一个tweet按钮,允许用户在tweet上发送URL。我

我使用的代码来自 我已经将步骤4中的JavaScript代码片段放入了一个名为tWidgit的函数中

此代码将文本超链接转换为Tweet按钮。当我硬编码Twitter HTML时,它是有效的,但对于我的JavaScript生成的链接,它不起作用。我确实在第36行设置了课程:

tw.class=“twitter共享按钮”

JavaScript为details元素设置一个监听器,并根据单击时每个摘要项的data属性创建一个超链接。我正在尝试制作一个tweet按钮,允许用户在tweet上发送URL。我需要使用他们的JavaScript。这是我的名片

另请参见随附的我的代码:

函数tWigit(){
window.twttr=(函数(d,s,id){
var js,fjs=d.getElementsByTagName[0],
t=window.twttr |{};
if(d.getElementById(id))返回t;
js=d.createElement;
js.id=id;
js.src=”https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
t、 _e=[];
t、 就绪=功能(f){
t、 _e.推动(f);
};
返回t;
}(文件,“脚本”、“推特wjs”);
}
常量根=”https://www.onetonline.org/link/summary/";
常数行波管=”https://twitter.com/intent/tweet?url=https://www.onetonline.org/link/summary/";
const fs=document.createElement('a');
fs.id=“fs”;
const linkText=document.createTextNode(“功能技能”);
fs.appendChild(链接文本);
fs.classList.add(“hide”);
fs.title=“功能技能”;
fs.href=”https://www.onetonline.org/link/summary/";
//文件.正文.附件(fs);
文件.getElementById(“p1”).appendChild(fs);
const tw=document.createElement('a');
tw.id=“tw”;
tw.class=“twitter共享按钮”;
const tweetText=document.createTextNode(“Tweet”);
tw.appendChild(tweetText);
tw.classList.add(“隐藏”);
tw.title=“Tweet”;
tw.href=”https://twitter.com/intent/tweet?url=";
tw.target=“_blank”;
文件.getElementById(“p2”).appendChild(tw);
tWigit();
document.getElementById(“容器”).addEventListener(“单击”),函数(e){
常数tgt=e.target;
常量isSummary=tgt.tagName==“摘要”;
const code=tgt.dataset.code;
toggle(“hide”!isSummary | | |!code);//仅当摘要和代码存在时显示
如果(发布摘要和代码){
fs.href=根+代码;
}  
tw.classList.toggle(“hide”!isSummary | | |!code);//仅当摘要和代码存在时显示
如果(发布摘要和代码){
tw.href=twt+代码;
}  
});
.hide{display:none;}

农业
拣选与包装
农场工人
农业设备经营者
农场工人、农场、牧场和水产养殖动物
建设
建筑工人
操作工程师和其他施工设备操作员
水泥石匠和混凝土饰面
砖匠和砖匠
栅栏安装工
测量技术员


创建锚定标记后,需要使用
twttr.widgets.load()重新加载twitter小部件。检查以下代码:

(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"));

document.getElementById('twitter-wjs').addEventListener('load', function() {
  const root = "https://www.onetonline.org/link/summary/";
  const twt = "https://twitter.com/intent/tweet?url=";

  const fs = document.createElement('a');
  fs.id="FS";
  const linkText = document.createTextNode("functional skills");
  fs.appendChild(linkText);
  fs.classList.add("hide");
  fs.title = "functional skills";
  fs.href = "https://www.onetonline.org/link/summary/";
  //document.body.appendChild(fs);
  document.getElementById("p1").appendChild(fs);

  const tw = document.createElement('a');
  tw.href = "https://twitter.com/intent/tweet?url=";
  tw.className = "twitter-share-button";
  tw.innerHTML = "Tweet"
  document.getElementById("p2").appendChild(tw);
  tw.classList.add("hide");
  twttr.widgets.load();

  document.getElementById("container").addEventListener("click",function(e) {
    const tgt = e.target;
    const isSummary = tgt.tagName==="SUMMARY";
    const code = tgt.dataset.code;
    fs.classList.toggle("hide",!isSummary || !code); // show only if summary AND code exists
    if (isSummary && code) {
      fs.href=root+code;
    }  
    tw.classList.toggle("hide",!isSummary || !code); // show only if summary AND code exists
    if (isSummary && code) {
      tw.href=twt+code;
      twttr.widgets.load();
    }  


  });

})

非常感谢。将html更改为

后看起来不错,我更新了代码。请查收。如果我能帮上忙,也许会对你有帮助:)祝你今天愉快!伟大的我从没听说过那个JS工厂。这种方法会更干净,我想这是我的荣幸:)如果你需要任何帮助,请告诉我。