如何将Javascript变量值显示到HTML href标记
我正在重写我的url和传递到url的类别名称。现在我正在使用JS函数创建Url友好字符串:如何将Javascript变量值显示到HTML href标记,javascript,html,url-rewriting,Javascript,Html,Url Rewriting,我正在重写我的url和传递到url的类别名称。现在我正在使用JS函数创建Url友好字符串: function getUrlFriendlyString(str) { // convert spaces to '-' //alert(str); str = str.replace(/ /g, "-"); // Make lowercase str = str.toLowerCase(); // Remove characters that are not alp
function getUrlFriendlyString(str)
{
// convert spaces to '-'
//alert(str);
str = str.replace(/ /g, "-");
// Make lowercase
str = str.toLowerCase();
// Remove characters that are not alphanumeric or a '-'
str = str.replace(/[^a-z0-9-]/g, "");
// Combine multiple dashes (i.e., '---') into one dash '-'.
str = str.replace(/[-]+/g, "-");
return str;
}
现在在HTML页面上,这个JS函数在JS中给出一个字符串值,就像
<? $cat_name= 'Personalized Chocolates / Gift'; ?>
<script>var url=getUrlFriendlyString("<?=$cat_name;?>");</script>
知道如何使用js字符串显示正确的url吗
我可以将var url值保存在PHP变量中您不能包含诸如。。。在属性值的中间。 如果要采用这种方法,则需要使用JavaScript写出整个锚元素 另一种方法是在HTML中设置默认值,然后在元素完成后出现的脚本中使用DOM访问元素
更好的方法是在PHP中重写getUrlFriendlyString函数,并在服务器上运行它。这对我很有效 您可以在php变量中获取var url值并在href标记中使用
<? $cat_name= 'Personalized Chocolates / Gift'; ?>
<script>var url=getUrlFriendlyString("<?=$cat_name;?>");</script>
及
这不会在href内为您提供相同的o/p,会为您提供o/p您的js代码,因为在$m内js代码已保存,href不会将js转换为字符串o/p
我希望这对您有用:这可能会帮助您在HTML代码中重定向到JS函数
<a onclick="redirectTo();">click here</a>
element.href=您的变量;我可以在php中这样做,我也在这样做,但我希望在客户端使用更少的服务器资源。我们在客户端转移了很多可能的功能亲爱的谢谢你的回答。我可以在php中这样做,我也在这样做,但我希望在客户端使用更少的服务器资源。我们在客户端转移了很多可能的功能,这是一种虚假的经济。从一开始,这种操作相对来说比较便宜。现在服务器资源也很便宜。将其移动到客户端将增加代码在多个目标环境下运行的复杂性,从而增加开发和测试成本,并增加失败的可能性,因为JS可能因网络故障/垃圾邮件过滤错误/移动连接丢失/用户禁用JS/等而无法运行。
http://localhost/ecom/category/<script>document.writeln(url);</script>/105
http://localhost/ecom/category/personalized-chocolates-gift/105
<? $cat_name= 'Personalized Chocolates / Gift'; ?>
<script>var url=getUrlFriendlyString("<?=$cat_name;?>");</script>
<?php
$m="<script>document.write(url);</script>";
echo $m; // output is : personalized-chocolates-gift
?>
<a onclick="redirectTo();">click here</a>