我正在尝试制作一个使用用户当前URL的书签,有点像使用此JavaScript代码的tinyURL书签
javascript:void(location.href='http://tinyurl.com/create.php?url='+location.href)
Run Code Online (Sandbox Code Playgroud)
所以我复制了同样的东西并制作了
javascript:void(location.href='http://mywebsite.com/create.php?url='+location.href)
Run Code Online (Sandbox Code Playgroud)
然后我用:
$url=$_GET['url'];
Run Code Online (Sandbox Code Playgroud)
检索它.问题是,如果我在网址上已经有一些获取样式信息的网址,它会混淆一切.
例如,如果我在:
http://www.google.ca/webhp?um=1&hl=en&safe=off
Run Code Online (Sandbox Code Playgroud)
'_GET'代码将$ url设置为
http://www.google.ca/webhp?um=1
Run Code Online (Sandbox Code Playgroud)
所以我觉得在谷歌URL的信息被搞乱了我所有的URL解析的,我想我做的东西非常不正确或有人为这是一个非常优雅的解决方案.我该怎么办?请帮忙
Cro*_*zin 15
URL具有指定的格式.该部分之后?
,或者更确切地说?
,#
如果存在,则称为查询字符串.它包含一个键值对列表 - 变量名称,=
字符和值.变量分隔为&
:
key1=value1&key2=value2&key3=value3&key4=value4
Run Code Online (Sandbox Code Playgroud)
你应该逃避,location.href
因为它可以包含一些特殊字符,如?
,&
或#
.
要在JavaScript中转义字符串,请使用如下encodeURIComponent()
函数:
location.href = "http://tinyurl.com/create.php?url=" + encodeURIComponent(location.href)
Run Code Online (Sandbox Code Playgroud)
它会替换&
成的字符%26
.该字符序列不被视为变量分隔符,因此它将作为变量的值附加.
javascript:void(location.href='http://mywebsite.com/create.php?url='+encodeURIComponent(location.href))
Run Code Online (Sandbox Code Playgroud)
你需要逃离角色。
归档时间: |
|
查看次数: |
33341 次 |
最近记录: |