【发布时间】:2021-07-31 08:06:48
【问题描述】:
这一定是一个非常简单的 HTML/CSS 跨浏览器问题,但我就是不知道为什么。
一个live fiddle page对我来说更容易解释情况:https://jsfiddle.net/9gyp18f4/1,我稍后也会把代码放在这里。所以问题是,当你用 safari 打开这个 fiddle 时,第二个按钮如下所示。
我只有一个小屏幕的 Macbook air,在与这个问题作斗争数小时后,我的大脑和眼睛都让我失望了。也许这里有人会很好地告诉我到底是什么导致了这个问题。
TL;DR 如果有人想知道这个小提琴中的代码在做什么 -
这是一个自定义的 Addthis 的“内联工具”,他们的微信按钮不能正常工作,所以我通过添加一个类来替换它。我使用requestAnimationFrame 确保在实际加载按钮的 HTML 之后添加类,因为它是由 Addthis 的代码加载的。
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5eaa206a3b043d9d"></script>
HTML 很简单
<div class="addthis_inline_share_toolbox"></div>
在 Addthis 的 JS 代码之前将实际按钮放入其中。按钮的实际 HTML 有点臃肿,我把 facebook 放在这里
<a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-facebook" style="background-color: rgb(59, 89, 152); border-radius: 4px;"><span class="at4-visually-hidden">Share to Facebook</span><span class="at-icon-wrapper"
style="line-height: 32px; height: 32px; width: 32px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-facebook-4"
style="fill: rgb(255, 255, 255); width: 32px; height: 32px;" class="at-icon at-icon-facebook">
<title id="at-svg-facebook-4">Facebook</title>
<g>
<path d="M22 5.16c-.406-.054-1.806-.16-3.43-.16-3.4 0-5.733 1.825-5.733 5.17v2.882H9v3.913h3.837V27h4.604V16.965h3.823l.587-3.913h-4.41v-2.5c0-1.123.347-1.903 2.198-1.903H22V5.16z" fill-rule="evenodd"></path>
</g>
</svg></span></a>
要使微信按钮按我的意愿工作,我必须删除微信按钮的at-share-btn 类,否则单击此按钮将触发 Addthis 的事件而不是我的。这导致按钮的样式与其他按钮的样式有些不同,因此我放置了一些 CSS 以使其样式与其他按钮对齐。
.wechatNativeShare{
background:green;
display:inline-block
}
#atstbx .wechatNativeShare{
margin:0 2px 5px;padding:5px
}
但是,在进行这些自定义之后,该按钮将无法在 Safari 上运行。我相信这个问题与我的自定义无关,除了用我的(.wechatNativeShare)替换它的原始类(at-share-btn)。听起来是一个非常简单的问题,对吧?但我只是找不到导致问题的原因并解决它。有人请帮助我。谢谢!
【问题讨论】:
-
您是否只是想阻止按下微信按钮时启动标准功能,并启动您的功能?
-
是的。我知道有更好的方法来做到这一点。但我对这个跨浏览器问题有点着迷,不能放手。
-
您可以将
at-share-btn类中的所有样式复制到.wechatNativeShare类的css + 悬停行为。这是最简单的方法。
标签: html css cross-browser addthis