我正在为内部使用的链接免责声明页面工作,并且我遇到的问题之一是将传出URL放入页面上的链接。下面的代码是我用来获取我需要的GET值并在解码后将其放入链接的href属性中的代码。代码的另一半使用内置的Javascript encodeURIComponent()函数,因此,除非我可以使用PHP解码函数,或者如果有一种非常简单的方法可以使用Javascript获取我需要的GET值,否则我将使用PHP将其放在服务器端的Javascript中。我知道它可以工作,它只需要几行PHP代码来获取和验证我需要的内容。
也就是说,代码在下面,我也会提供一个链接到这个页面,这样你就可以看到发生了什么。
jQuery(".btn-continue").attr("href") = "'"" + decodeURIComponent(
<?php
if(isset($_GET["outlink"])){
echo $_GET["outlink"];
}else{
echo "/";
}
?>
);
这是一个有代码的页面:http://radboxstudio.com/you-are-now-leaving-radboxstudio-com.html?outlink=http://google.com/
点击本页第一个指向Google的链接,您将进入上面的页面:http://radboxstudio.com/
有一点Javascript应该编码链接的href并使用get传递它。我在下面包含了相关的代码,以防我搞砸了。currentDomain是在较早的代码中定义的,我知道它可以正常工作。
$('a').each(function() {
var $a = jQuery(this);
if ($a.get(0).hostname && getDomain($a.get(0).hostname) != currentDomain) {
$a.click(function(event) {
if (!confirmed) {
event.preventDefault();
event.stopPropagation();
var url = encodeURIComponent($a.get(0));
window.location = "http://radboxstudio.com/index.php?option=com_content&view=article&id=10&outlink=" + url;
}
});
}
});
要使用jquery的attr()函数设置href的值,您应该像这样使用它:
$("selector").attr("href", "value_you_want");
查看jquery api: http://api.jquery.com/attr/
结果是PHP为我做了这项工作。下面的代码可以工作。
<?php if(isset($_GET["outlink"])){
$outlink = $_GET["outlink"];
}else{
$outlink = "/";
}
?>
<a href="<?php echo $outlink;?>">Linky</a>
对不起,给你添麻烦了。: D