Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.1.9Beta8 PJAX主题 异步加载问题 #66

Closed
AtlasChiu opened this issue Mar 28, 2018 · 3 comments
Closed

1.1.9Beta8 PJAX主题 异步加载问题 #66

AtlasChiu opened this issue Mar 28, 2018 · 3 comments

Comments

@AtlasChiu
Copy link

·

  • 使用PJAX主题,只有1.1.8版本基本正常,页面切换后评论都能正常显示。最新版1.1.9beta8 切换页面后评论不能正常加载,底部提示 TypeError: t.v is undefined
  • 问题页面 http://blog.fcrum.net/index.php/archives/7.html
  • 1.1.9 beta8 , Firefox 59.0 , Windows 10.0

·

  • IE或EDGE浏览器下则底部报错TypeError: Unable to get property 'Query' of undefined or null reference
@xCss
Copy link
Owner

xCss commented Mar 29, 2018

@AtlasChiu 你好,感谢反馈,目前我正在对Pjax页面进行探索,请尝试将:

<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src='//unpkg.com/valine@latest/dist/Valine.min.js'></script>

两行代码加上data-no-instant属性,然后放到下面代码的后面:

<script src="http://blog.fcrum.net/usr/themes/Note/js/jquery.pjax.js" data-no-instant></script>
<script src="http://blog.fcrum.net/usr/themes/Note/js/highlight.pack.js" data-no-instant></script>
<script src="http://blog.fcrum.net/usr/themes/Note/js/highlightjs-line-numbers.js" data-no-instant></script>
<script src="http://blog.fcrum.net/usr/themes/Note/js/waves.min.js" data-no-instant></script>
<script src="http://blog.fcrum.net/usr/themes/Note/js/jquery.fancybox.js" data-no-instant></script>
<script src="http://blog.fcrum.net/usr/themes/Note/js/main.js" data-no-instant></script>
<!-- 对。就是这里 ↓↓↓ -->
+<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"  data-no-instant></script>
+<script src='//unpkg.com/valine@latest/dist/Valine.min.js'  data-no-instant></script>

然后将下面的代码删掉:

    new Valine({
            el:'.comment',
            app_id:'你的id',
            app_key:'你的key',
            placeholder:'ヾノ≧∀≦) 提交评论前请先按F5刷新当前页面…',
            notify:true,
            verify:true,
            region:'cn',
            path:window.location.pathname,
            avatar:'retro',
            pageSize:10
    });

对下面的代码做如下修改:

+    var option = {
+            el:'.comment',
+            app_id:'你的id',
+            app_key:'你的key',
+            placeholder:'ヾノ≧∀≦) 提交评论前请先按F5刷新当前页面…',
+            notify:true,
+            verify:true,
+            region:'cn',
+            path:window.location.pathname,
+            avatar:'retro',
+            pageSize:10
+    };
+    var valine = new Valine(option);
    hljs.initHighlightingOnLoad();
    hljs.initLineNumbersOnLoad();
    Waves.displayEffect();
    otherFunction();
    $(document).pjax('a', '#pjax-container', {fragment:'#pjax-container', timeout:8000}).on('pjax:send', function() {
        $('.page-loading').fadeIn();
    }).on('pjax:complete', function() {
        $('pre code').each(function(i, block){
            hljs.highlightBlock(block);
        });
        $('code.hljs').each(function(i, block){
            hljs.lineNumbersBlock(block);
        });
    }).on('pjax:end', function() {
+      // pjax事件完成之后重新初始化一次valine
+      valine.init(option);
        $('.page-loading').fadeOut();
        otherFunction();
    });
    InstantClick.on('change', function() {
        Waves.displayEffect();
        $('pre code').each(function(i, block){
            hljs.highlightBlock(block);
        });
        otherFunction();
        $('code.hljs').each(function(i, block){
            hljs.lineNumbersBlock(block);
        });
        loadMeting(); // <-- reload Meting.JS
    });
    InstantClick.init();
    

如果此操作还是不能得到正确的结果,那我将继续我的探索。请见谅!

@AtlasChiu
Copy link
Author

AtlasChiu commented Mar 29, 2018

@xCss 您给出的这部分代码的修改,是哪个页面呢?是comments.php文件的内容?
该文件目前的内容为
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js" data-no-instant></script>
<script src='//unpkg.com/valine@latest/dist/Valine.min.js' data-no-instant></script>
<div class="comment"></div>
<script>

    new Valine({
            el:'.comment',
            app_id:'**',
            app_key:'**',
            placeholder:'ヾノ≧∀≦) 提交评论前请先刷新当前页面…',
            notify:true,
            verify:true,
            region:'cn',
            path:window.location.pathname,
            avatar:'retro',
            pageSize:10
    });

</script>

是要修改这个页面吗?我按上文改了 页面加载不出来了

@xCss
Copy link
Owner

xCss commented Mar 30, 2018

@AtlasChiu 抱歉哦,对typecho不太熟。而且对php也不太懂。so...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants