根据页面上的URL编辑复选框 - javascript

我一直在努力几个小时,听起来很简单。
我所拥有的是复选框列表,如果选中了复选框,则页面URL将会更改(要保存过滤器选项,因此您可以将URL共享给过滤器)。当用户想返回时,除了一点之外,它都可以完美地工作。该复选框应未选中。

使用jQuery

setBoxes()是函数;

我试过了:

function pageLoad() {
   setBoxes();
}

$(document).ready(function(){
   setBoxes();
}

我也加了

 window.onunload = function(){};

但是这些解决方案均无效(该功能无法运行,我检查了一下)。

在那之后,我想我可以用php(如果在数组中检查回显,则将URL获取到数组),但是php不会再次运行(我想它已经兑现了)。

我有什么选择可以尝试,因为我真的无法解决这个简单的问题。

因为我的代码很大,所以我对这种情况做了一个很小的例子http://jsfiddle.net/yzoztp05/1/,所以阻止了jsfiddle中更新url的操作,因此无法完全正常工作。

为了使情况更加清楚,我制作了一个视频https://www.youtube.com/watch?v=jaSc1fmaJD4&feature=youtu.be。

设置我的复选框的代码

//convert the url to array
function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}

// Set the checkboxes to checked if they are in the array
function setBoxes()
{
    var prijsUrl = getQueryVariable("prijs");
    // first set all checkboxes on unchecked
    $('.prijsFilterBox').prop('checked', false);
    alert("Loaded");
    if(prijsUrl != false)
    {           
        var res = prijsUrl.split("-");

        for(var i = 0; i < res.length; i++ )
        {
            $('.prijsFilterBox[value='+res[i]+']').prop('checked', true);
            console.log("prijs = "+res[i]);
        }
    }
    else
    {
        console.log("prijs = null");
    }
}

如果我刷新页面,它将起作用,但是当用户按下“后退”按钮时,它将无法继续运行。如果无法在页面上运行javascript,我将尝试使用php创建其他脚本。

TLDR
如何在后页(所有浏览器)上运行jquery函数?

参考方案

可能(并且我认为许多人正在使用这种方式)具有timeOut函数,该函数每500ms调用一次以检查URL是否已更改,而不是使用“?”使用井号“#”,以便用户始终在同一页面上,并且可以捕获URL更改。

如果您需要坚持“?” ,也许您可​​以使用window.onbeforeunload函数执行某些操作。

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

PHP-显示特殊字符 - javascript

允许用户输入的代码段//fetch user input and pass it in URL alertify.prompt("Please enter note/remarks for this Form (optional):", function (e,value) { if (e) { alertify.success(…

在访问另一页面后保留浏览器滚动位置 - php

我正在使用JS,JQuery和PHP,试图解决无限滚动问题。问题是,如果您在页面上滚动很长一段时间,并且用ajax加载了更多页面,然后单击链接转到新页面,那么在使用浏览器时如何自动转到旧页面中的同一位置新页面上的返回按钮?。新页面使用ajax滚动加载。 php参考方案 我想出的解决方案是在离开页面之前,将每个页面与相关数据一起存储。需要以下信息来保持滚动位置…