如何实现访问JS模式内容的自定义URL处理程序?

时间:2018-08-09 作者:nizz0k

我维护了一个wordpress站点,该站点使用大量javascript,并在使用Tingle模态库创建的模态中包含大量内容。该站点设计为主页的单栏站点,使用基于哈希的导航来引导用户在页面上下移动。我想实现的是,通过url访问模式内容,以便外部用户可以直接访问该内容。

modals本身从自定义内容类型中提取信息,并通过单击主页上的url调用jquery函数来触发。我假设要获得我想要的功能,我需要实现某种自定义URL处理程序来触发模式函数提交,但我不确定实现这一点的最佳方式是什么(.htaccess、PHP脚本、Jquery、combination?)。不管怎样,我想知道是否有人处理过类似的事情并提出了建议?

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

您可以使用javascript尝试以下逻辑:

页面加载检查url中是否存在类似以下内容的哈希:

var hash = decodeURIComponent(location.hash.substr(1));

<然后您将有两个表(一个用于团队,一个用于顾问),其名称与您的模态URL匹配(例如:https://greentec-capital.com/team/peter-grouev/) 例如:

var teamHashes = [\'peter-grouev\', \'erick-yong\'];

<之后,您将检查hash 在您的一张桌子里*:

if teamHashes.indexOf(hash) !== -1 { //show modal logic }

*如果hash 不在teamHashes 表,然后检查advisorsHashes 桌子

现在在上面if, 要显示模态,我们需要声明$modal 就像在代码中一样,构造url并对其进行ajax调用,如:

if teamHashes.indexOf(hash) !== -1 {
    var $teamModal = new tingle.modal({
        footer: true,
        stickyFooter: false,
        closeMethods: [\'overlay\', \'escape\'],
        closeLabel: "Close",
        cssClass: [\'team-modal\'],
        onOpen: function() {
            console.log(\'modal open\');
        },
        onClose: function() {
            console.log(\'modal closed\');
            $modal.setContent("");
        },

    var teamUrl = "https://greentec-capital.com/team/"+hash+"/";

    $.ajax({
           type: "POST",
           url: teamUrl,
           data: {},
           success: function(result){
               $modal.setContent(result);
               $modal.open();
           }
        });
});
这应该可以做到。

结束

相关推荐

插件中的JavaScript数据表

我有一个已经开始开发的插件,我想尝试使用datatables。net显示表格数据。我不知道如何做到这一点,在搜索和尝试了不同的东西后,我迷路了。以下是我的插件中的内容。当前,当我加载页面时,它会显示表,我可以在页面源代码中看到加载了dataTables js、dataTables css和customScriptDatatables。add_action(\'create_datatable\', \'show_datatable\'); function show_datatable (){&#