首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载Ratchet\Push.js页面后执行自定义脚本

加载Ratchet\Push.js页面后执行自定义脚本
EN

Stack Overflow用户
提问于 2014-04-17 23:24:35
回答 2查看 4.5K关注 0票数 7

因此,在GitHub的棘轮2.0.2文档中,我找到了以下语句。

包含JavaScript的脚本标记将不会在带有push.js的页面上执行。如果要将事件处理程序附加到其他页上的元素,则文档级事件委托是常见的解决方案。

有谁能准确地说明如何使自定义<script>在被Push.js加载后执行?

在我的第一页上,我有一个Table视图,有几个指向其他页面的链接,其中一个是指向第二个页面的链接,其中一个页面上有一个Twitter Feed小部件。

代码语言:javascript
复制
<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>

第二个页面只包含twitter提要小部件代码。当我直接浏览到这个页面(没有被Push.js加载)时,所有的加载都是正确的,但是当它通过Push.js加载时,脚本就不会被执行。

请有人解释一下,在被Push.js加载之后,我需要做些什么来执行这个脚本?我已经搜索过Google、Stack Exchange和Github\Ratchet问题,但没有找到一个很好的例子来说明如何做到这一点。

一个解决方案是将data-ignore="push"添加到链接中,但我想知道如何处理push.js

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-21 19:00:59

编辑:下面的是我最初是如何解决这个问题的,它运行得很好,但是我想出了一个更好的解决方案,我把它作为这个问题。的答案。

我终于想出来了。

在您的第一页中,您需要执行以下操作.

代码语言:javascript
复制
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);

每次通过push加载新页面时,checkPage()都会执行。

票数 7
EN

Stack Overflow用户

发布于 2015-10-13 09:30:09

刚刚对Ratchet.js做了一个修改,使单个js对每一页都更优雅。(https://github.com/mazong1123/ratchet-pro)

通过使用新的ratchetPro.js,我们可以完成以下工作:

代码语言:javascript
复制
(function () {
    var rachetPageManager = new window.RATCHET.Class.PageManager();
    rachetPageManager.ready(function () {
       // Put your logic here.
    });
})();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23145097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档