提问人:Stalkium 提问时间:1/5/2021 最后编辑:Stalkium 更新时间:1/5/2021 访问量:197
HTML href 变量值
HTML href variable value
问:
在我的网页中,我有一个像 20 篇文章的提要,每篇文章下面都有一个社交媒体共享面板,用于分享每篇文章,代码如下:
<a href="http://www.facebook.com/sharer.php?u=HTTPURLTOSHARE">
<i class="fab fa-facebook"></i>
</a>
所以基本上我为每个社交媒体服务(比如 10、FB、TW、IG 等)和每篇文章都有几个这样的链接。
我的问题是:有没有办法编写包含所有共享服务链接的共享 DIV,单击共享按钮时,只需将其 URL (HTTPURLTOSHARE) 分配给社交媒体共享按钮,?
我知道这是可能的服务器端,但我不熟悉前端后端开发。
答:
2赞
mplungjan
1/5/2021
#1
这并非微不足道
- 我做了一个模板
- 我给弹出链接一个带有文章 URL 的数据属性
- 我在每个链接后插入模板内容
window.addEventListener("load",function() {
[...document.querySelectorAll("a[data-url]")]
.forEach((lnk,i) => {
const url = lnk.dataset.url;
const pop = document.getElementById("sharer").content.cloneNode(true)
pop.querySelector('.overlay').setAttribute("id",lnk.hash.slice(1));
[...pop.querySelectorAll(".social-square a")].forEach(lnk => lnk.href = lnk.href.replace("SHARE",url))
lnk.after(pop)
})
})
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" />
<!-- FIRST ARCITLE -->
<h1>We must stop calling Trump’s enablers ‘conservative.’ They are the radical right.</h1>
<p>You hear the word “radical” a lot these days. It’s usually aimed like a lethal weapon at Democratic office-seekers, especially those who want to unseat a Republican incumbent. Sen. Kelly Loeffler, the Georgia Republican, rarely utters her challenger’s name without branding him as “radical liberal Raphael Warnock.”</p>
<a href="#popup1" data-url="https://www.washingtonpost.com/lifestyle/media/trump-enablers-radical-right-conservative/2021/01/04/634edcda-4e97-11eb-b96e-0e54447b23a1_story.html">Share this article</a>
<!-- SECOND ARTICLE -->
<h1>An Insurgency From Inside the Oval Office</h1>
<p>President Trump’s effort to overturn the election he lost has gone beyond mere venting of grievances at the risk of damaging the very American democracy he is charged with defending.</p>
<a href="#popup2" data-url="https://www.nytimes.com/2021/01/04/us/politics/trump-biden-inauguration.html">Share this article</a>
<template id="sharer">
<!-- HERE START THE SHARING MODAL WINDOW and it will be repeated for each article, Only the article URL change so this is why i want to find a way to write this code once and assign only the URL for each article if possible -->
<div id="" class="overlay">
<div class="popup"><a class="close" href="#"><i class="fas fa-times-circle"></i></a>
<div class="content">
<div class="shr-div">
<!-- Facebook -->
<div class="social-square fac" data-content="facebook">
<a href="http://www.facebook.com/sharer.php?u=SHARE"><i class="fab fa-facebook-f"></i></a>
</div>
<!-- Twitter -->
<div class="social-square twi" data-content="twitter">
<a href="https://twitter.com/share?url=SHARE"><i class="fab fa-twitter"></i></a>
</div>
<!-- WhatsApp -->
<div class="social-square wha" data-content="whatsapp">
<a href="whatsapp://send?text=SHARE"><i class="fab fa-whatsapp"></i></a>
</div>
<!-- Viber -->
<div class="social-square vib" data-content="viber">
<a href="viber://forward?text=SHARE"><i class="fab fa-viber"></i></a>
</div>
</div>
</div>
</div>
</div>
<!-- END OF THE SHARE MODAL WINDOW -->
</template>
评论
0赞
Stalkium
1/5/2021
我现在没有得到它,我在 tryiteditor 上发布了我的代码链接的更新
0赞
Stalkium
1/5/2021
我现在刚刚尝试过,它可以工作,但你说我必须复制每篇文章链接下的模板???我只是将您的示例与一个模板一起使用,它工作正常!!
0赞
Stalkium
1/5/2021
一切都很好,它只是做了它应该做的,非常感谢。答案被采纳
0赞
mplungjan
1/5/2021
一个模板 - 链接来自弹出链接的数据属性
0赞
mplungjan
1/5/2021
我改进了代码,从打开它的链接中获取覆盖 IDpop.querySelector('.overlay').setAttribute("id",lnk.hash.slice(1));
0赞
Caroline D.
1/5/2021
#2
我认为您需要对社交提要进行(http 调用)以获取文章详细信息(包括链接),然后一旦获得数据,就可以合并和呈现页面中的链接。
评论
0赞
mplungjan
1/5/2021
这真的是一个评论,而不是一个答案。有了更多的代表,您将能够发表评论。
0赞
Caroline D.
1/5/2021
是的,这是一个评论,但正如你正确指出的那样,我不能添加一个。使用您建议的方法,所有社交链接都将被渲染,然后使用js进行合并和重新渲染。
0赞
Stalkium
1/5/2021
不,因为文章已经由基于 Windows 的应用程序获取并直接注入到网页中,并带有它们的 URL、描述、日期和 OG 图像,
0赞
Caroline D.
1/5/2021
所以你已经拥有了所有的数据,那么它应该更加直接。
0赞
Stalkium
1/5/2021
@CarolineD。我创建了一个 Windows 软件,我在其中选择文章,只给他 URL,它获取它们(标题、描述、OG 图像、链接等)并为每篇文章创建 HTML 代码,包括每篇文章下共享 DIV 元素的 100 行代码,我最终一页有 5000 行或更多行,这就是问题所在
上一个:响应式和粘性顶部菜单冲突
下一个:使用 jq 一次删除多个密钥
评论