我想编码一个数字,其中url在js中传递了标签。我正在尝试encodeURIComponent(),但这不起作用。
此标记包含在js代码中:
<a href="index.php?act=viw_product&id=encodeURIComponent('+val['id']+')" > </a>
我需要用base64格式编码id吗?
答案 0 :(得分:0)
它不起作用,因为除了少数例外,JavaScript不会在HTML元素的内部参数中随意运行。 HTML参数只是普通的字符串。
我认为您的代码存在更多基本问题,但至少要对值进行编码并将其添加到字符串中,您需要更改将值连接在一起的方式。
var url = 'index.php?act=viw_product&id=' + encodeURIComponent(val['id']);
这将获取val['id']
并对其进行编码,然后将其附加到路径字符串的末尾并将其存储在url
变量中。
现在url
将包含末尾带编码数字的整个路径。但是,您需要实际告诉脚本找到<a>
标记,并将href
参数设置为等于该值才能生效。
以下是原始javascript中的基本示例:
// find out link element
var el = document.querySelector('a');
// encode our URL with a wacky ID
var id = '1#B!70_4';
var url = 'index.php?act=viw_product&id=' + encodeURIComponent(id);
// set the URL on our href attribute
el.setAttribute('href', url);
&#13;
<a href="#">click me</a>
&#13;
如果您运行上述示例并将鼠标悬停在链接上,则可以看到生成的网址已应用于链接href
属性。