设置重置为默认设置时,定制器预览URL不会更新

时间:2018-02-03 作者:Alison

因此,我在主题的定制器中有一个页面选择,还有一些代码,可以在用户选择其他页面时更改预览:

api(\'gm_pages\', function (setting) {
           var pageID = setting.get();
            setting.bind( function onChange( pageID ) {
                api.previewer.previewUrl.set(api.settings.url.home + \'?page_id=\' + pageID);
               })
        });
我使用这个简单的插件,以便用户可以将自定义设置重置为默认设置:

https://plugins.trac.wordpress.org/browser/customizer-reset-by-wpzoom/trunk

当你点击一个按钮时,你会看到一个警告弹出窗口,如果你点击它,插件会删除theme\\u mod数据并刷新整个网站。

我遇到的问题是,当我这样做时,页面下拉选项会返回到默认的“主页”,但预览URL不会更新,并停留在用户选择的最后一个页面上。如果我控制台。日志(pageID);正确的页码(显示在选择框中)显示,这是由于某种原因无法运行的预览。

编辑:我可以将此行添加到:

 if (performance.navigation.type === 1) {
            api.previewer.previewUrl.set(api.settings.url.home + \'?page_id=\' + pageID);
        }
这就是诀窍,但我如何有条件地做到这一点,而不需要两行相同的代码?

1 个回复
最合适的回答,由SO网友:Alison 整理而成

我通过添加以下条件来管理它:

if (performance.navigation.type >= 0) {
                api.previewer.previewUrl.set(api.settings.url.home + \'?page_id=\' + pageID);
            }
这将考虑所有导航可能性。这是一种变通方法,但确实奏效了。

MDN Web文档:

PerformanceNavigation

结束

相关推荐

如何在网站页眉中显示javascript横幅?

我最近购买了一个主题,其中包括在标题中显示横幅的选项。横幅可以使用静态图像或javascript显示。我使用的特定javascript代码用于亚马逊横幅广告,并通过iframe显示在前端。使用静态图像,横幅将正确显示,如您在此处所见:http://capethemes.com/demo/portal/review/但是,使用javascript代码时,横幅不可见。在检查源代码时,我发现脚本标记和包含块的html都在那里,但缺少iframe元素。无论如何,我能够确定这是一个样式问题,但不确定如何解决它。以下