javascript - 在某些浏览器中使用手风琴时不会出现 Tweet 按钮
问题描述
我正在使用以下代码来显示一个 twitter 按钮来共享一个网站的页面。
<script>$(document).ready(function(){!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");});</script>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="/myUrl" data-text="message" data-hashtags="myhashtag">Tweet</a>
无论我使用哪种浏览器,此代码在页面中使用时都可以正常工作。
现在,当我想将该按钮放入 html 手风琴时,我的问题就开始了。当元素被放置在最初隐藏的东西中时,CSS 的行为会因浏览器而异。在 Chrome 上,大多数时候在展开手风琴时会显示推文按钮。在 Internet Explorer 和 Firefox(我没有 Edge 测试它)上,该按钮的计算大小为 1px。如果我使用开发人员工具为 CSS 中的按钮设置正确的大小,那么它就会出现。javascript 完成了它的工作:脚本已加载,iframe 在这里包含所有必要的代码,我对来自 twitter 网站的加载没有任何问题,我唯一的问题是计算出的 CSS 会阻止按钮的显示。
所以我正在寻求帮助来显示按钮,即使它在开始时被隐藏。
编辑:下面的代码片段试图证明我的问题。
.btn-o {
width: 100% !important;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script>$(document).ready(function(){!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");});</script>
<p>
Tweet button not hidden at start
<a href="https://twitter.com/share" class="twitter-share-button" data-url="/myUrl" data-text="message" data-hashtags="myhashtag">Tweet</a>
</p>
<p>
Tweet button hidden at start
<div id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0">
<button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
Here is also a tweet button, if you see nothing you have my bug demonstrated (don't work with IE or Firefox most of the time)
<a href="https://twitter.com/share" class="twitter-share-button" data-url="/myUrl" data-text="message" data-hashtags="myhashtag">Tweet</a>
</div>
</div>
</div>
</div>
</p>
</div>
解决方案
推文按钮的类似乎是 btn-o。尝试为 btn-o 添加样式
.btn-o {
width: 100% !important;
}
推荐阅读
- java - 为什么我的 ImageView (Android Studio) 的图像仅在 onClick 方法结束时发生变化?
- mysql - 关于 MySQL 触发器
- python - 在不破坏 tkinter 布局的情况下调整图像大小
- unit-testing - 销售人员 - 测试 Apex 类列表
- vba - 在 Access 中修改链接表定义
- java - 如何通过代码初始化 JavaFX fxml 文件中定义的树视图控件
- mongodb - MongoTemplate中的id查询因转换为$oid而失败
- salesforce - Salesforce 触发器
- mysql - mysql - 从函数中获取字段名
- c++ - 基于数值(正、负、零)实现条件表达式的最佳方法