Javascript 使用包含特定查询字符串参数的src创建图像元素
我想创建一个HTML图像元素,如下所示:Javascript 使用包含特定查询字符串参数的src创建图像元素,javascript,html,Javascript,Html,我想创建一个HTML图像元素,如下所示: <img src="www.example.com?param1=aid¶m2=sid¶m3=user¶m4=now" /> 如何从该数据创建元素?您可以使用document.createElement('img')创建img元素(而不是“标记”) 您可以使用该元素的src反射属性设置它的src,一个字符串。现在,要创建该字符串,可以使用字符串连接(+)。但是,请参见下面的ES6注释 因此:
<img src="www.example.com?param1=aid¶m2=sid¶m3=user¶m4=now" />
如何从该数据创建元素?您可以使用
document.createElement('img')
创建img
元素(而不是“标记”)
您可以使用该元素的src
反射属性设置它的src
,一个字符串。现在,要创建该字符串,可以使用字符串连接(+
)。但是,请参见下面的ES6注释
因此:
然后,您希望将其附加到DOM的某个位置
注意非数字组件上的encodeURIComponent
。查询字符串中的名称和值都必须是URI编码的。但是我没有在param1
、param2
等方面费心,因为我知道它们的URI编码版本……完全相同。类似地,我知道一个数字的URI编码版本就是这个数字。但是我看到user
是一个文本值,我假设它并不总是“abcd”
,所以为了防止出现问题,我对它进行了URI编码
请回复您的评论:
假设我想给img元素添加属性,它应该是img.height=1和img.width=1
规范。是的,height
和width
都在那里,并且都使用了height
和width
属性,尽管您可能希望改用样式表
并非所有属性都具有反射属性。对于那些不需要的,您可以使用setAttribute(“name”,value)
(如果该值不是字符串,则将其转换为字符串)
在下一个版本的JavaScript ECMAScript 6(ES6)中,您可以使用
src
的模板字符串:
var img = document.createElement('img');
img.src = `www.example.com?param1=${aid}¶m2=${sid}¶m3=${encodeURIComponent(user)}¶m4=${now}`;
您可以使用
document.createElement('img')
创建img
元素(而不是“标记”)
您可以使用该元素的src
反射属性设置它的src
,一个字符串。现在,要创建该字符串,可以使用字符串连接(+
)。但是,请参见下面的ES6注释
因此:
然后,您希望将其附加到DOM的某个位置
注意非数字组件上的encodeURIComponent
。查询字符串中的名称和值都必须是URI编码的。但是我没有在param1
、param2
等方面费心,因为我知道它们的URI编码版本……完全相同。类似地,我知道一个数字的URI编码版本就是这个数字。但是我看到user
是一个文本值,我假设它并不总是“abcd”
,所以为了防止出现问题,我对它进行了URI编码
请回复您的评论:
假设我想给img元素添加属性,它应该是img.height=1和img.width=1
规范。是的,height
和width
都在那里,并且都使用了height
和width
属性,尽管您可能希望改用样式表
并非所有属性都具有反射属性。对于那些不需要的,您可以使用setAttribute(“name”,value)
(如果该值不是字符串,则将其转换为字符串)
在下一个版本的JavaScript ECMAScript 6(ES6)中,您可以使用
src
的模板字符串:
var img = document.createElement('img');
img.src = `www.example.com?param1=${aid}¶m2=${sid}¶m3=${encodeURIComponent(user)}¶m4=${now}`;
JS中的字符串可以用
+
操作符链接在一起。数值将被强制为字符串(尽管有时无法按预期工作)。JS中的字符串可以用+
操作符链接在一起。数字值将被强制为字符串(尽管有时无法按预期工作)。了解模板字符串也很好。这就是JS,没有库或者别的什么?太棒了。@DougFirr:是的,一旦每个人都升级了浏览器,那么到2021年左右。:-)与此同时,像这样的传输程序已经支持它了。很高兴了解模板字符串。这就是JS,没有库或者别的什么?太棒了。@DougFirr:是的,一旦每个人都升级了浏览器,那么到2021年左右。:-)与此同时,像这样的传输程序已经支持它了。
var img = document.createElement('img');
img.src = `www.example.com?param1=${aid}¶m2=${sid}¶m3=${encodeURIComponent(user)}¶m4=${now}`;