Sch*_*lzy 7 javascript ratchet-bootstrap ratchet-2 push.js
因此,在Ratchet 2.0.2的GitHub文档中,我发现了以下声明.
包含JavaScript的脚本标记不会在使用push.js加载的页面上执行.如果要将事件处理程序附加到其他页面上的元素,则文档级事件委派是一种常见的解决方案.
有人可以请详细说明如何<script>在加载后获得自定义执行Push.js?
在我的第一页上,我有一个表视图,其中有几个指向其他页面的链接,其中一个链接指向第二个页面,其上有一个Twitter Feed小部件.
<li class="table-view-cell media">
<a class="navigate-right" href="Twitter.php" data-transition="slide-in">
<span class="media-object pull-left icon icon-person"></span>
<div class="media-body">
Twitter Feed
</div>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
第二页仅包含twitter feed小部件代码.当我直接浏览到这个页面(没有被加载Push.js)时,一切都正确加载,但是当它通过Push.js加载时,脚本不会被执行.
有人可以解释我需要做什么才能让这个脚本在加载后执行Push.js?我搜索了Google,Stack Exchange和Github\Ratchet问题,但未能找到如何实现这一目标的好例子.
一种解决方案是添加data-ignore="push"到链接,但我想知道如何处理WITH push.js.
<div class="content">
<a class="twitter-timeline" href="https://twitter.com/XXXX" data-widget-id="XXXX">Tweets by XXX</a>
</div>
<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:下面是我最初解决这个问题的方法,工作正常,但我提出了一个更好的解决方案,我发布了这个问题的答案.
我终于弄明白了.
在您的第一页上,您需要执行以下操作...
var checkPage = function(){
//Only run if twitter-widget exists on page
if(document.getElementById('twitter-widget')) {
loadTwitterFeed(document,"script","twitter-wjs");
}
};
window.addEventListener('push', checkPage);
Run Code Online (Sandbox Code Playgroud)
checkPage() 每次通过push加载新页面时都会执行.
| 归档时间: |
|
| 查看次数: |
4308 次 |
| 最近记录: |