我尝试将属性autoplay
添加到iframe。
但是,此属性只是一个标记,它没有值:
<iframe src="..." autoplay></iframe
在Nokogiri中添加一个属性:
iframe = Nokogiri::HTML(iframe).at_xpath('//iframe')
iframe["autoplay"] = ""
puts iframe.to_s
---------- output ----------
"<iframe src="..." autoplay=""></iframe>"
Nokogiri有这样的方法可以做到这一点,还是应该在最后用正则表达式删除/=""/
?
由于
答案 0 :(得分:1)
Nokogiri不能做你想要的,开箱即用。
选项1:使用正则表达式解决方案。
选项2:HTML语法表示布尔属性可以设置为自己的值,因此在您的代码中这是合法且好的:
iframe["autoplay"] = "autoplay"
输出:
<iframe src="..." autoplay="autoplay"></iframe>
选项3:改变Nokogiri宝石代码。
$ edit nokogiri-1.6.6.2/lib/nokogiri/html/element_description_defaults.rb
找到这一行:
IFRAME_ATTRS = [COREATTRS, 'longdesc', 'name', ...
并插入自动播放:
IFRAME_ATTRS = [COREATTRS, 'autoplay', 'longdesc', 'name', ...
现在,Nokogiri会将autoplay
视为二进制属性,如您所愿。
我正在为您的想法创建拉取请求,为每个人添加此功能给Nokogiri: