Javascript 如何解码url中的html?
在我的项目中,我有一个“后退按钮”,它调用了一个javaScript函数,在调用该函数时会记住前面的urlJavascript 如何解码url中的html?,javascript,html,Javascript,Html,在我的项目中,我有一个“后退按钮”,它调用了一个javaScript函数,在调用该函数时会记住前面的url //back button function function goBack() { $window.history.back(); } 单击“后退”按钮时要记住或调用的url包含一个ID,该ID用于筛选数据。我遇到的主要问题是,这个ID以html编码的字符串形式返回。例如,这是正在调用的url: //查找?$filter=VehicleId%20eq%20%272415%27& 如您
//back button function
function goBack() { $window.history.back(); }
单击“后退”按钮时要记住或调用的url包含一个ID,该ID用于筛选数据。我遇到的主要问题是,这个ID以html编码的字符串形式返回。例如,这是正在调用的url:
//查找?$filter=VehicleId%20eq%20%272415%27&
如您所见,VehicleId在上面的url中是2415,它也被编码为%20%272415%27&。此纯文本为VehicleId=“2415”。这与我的程序冲突,因为我的程序需要一个int变量而不是字符串
为了解决这个问题,我尝试去编码??我一直在研究这个问题,但是我仍然不知道如何把它放到我的项目中
我使用$location来记住url中的ID,如下所示:
if ($location.search().vehicle) {
var str = vehicle;
var strEsc = unescape(str);
vehicle = strEsc;
vehicle = $location.search().vehicle;
}
老实说,我不知道我是否做对了(我不确定)…有人可以帮忙吗?您可以使用regexp解析VehicleId,例如:
var tab=unescape(location.search).match(/VehicleId eq '(\d+)'/);
if (tab) {
var id=tab[1];
}
decodeURIComponent
是关键:
decodeURIComponent('VehicleId%20eq%20%272415%27&'); // "VehicleId eq '2415'&"
这绝对不是一个正确的ID(更不用说您正在尝试执行
$filter=VehicleId=2135
,当然,这会破坏查询字符串,找到一种方法对该值进行编码)。您可能应该使这些ID更标准一些,这样您就可以得到更准确的结果 我可能的副本也会非常小心提供一个Javascript支持的、基于表单的后退按钮,并告诉用户不要使用浏览器的后退按钮。他们不会听/注意的。确保浏览器的“后退”按钮符合用户的期望-此时,您不需要HTML按钮。感谢您抽出时间回答我的问题,我知道您来自何方,但在本项目中,只有用户。。你能分享一下“调用时记住上一个url”的代码吗?它就在上面,先生!/>函数goBack(){$window.history.back();}hmmm。。。。您知道如何设置url以进行相应的更改吗?我的意思是车辆ID将根据用户的选择动态更改。我建议使用更合适的URL结构,例如:/Lookups?VehicleId=2415
,因为您当前的结构总是需要我手动重写(例如将'eq'更改为=
),这可能不值得。