我试图将属性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是否有这样的方法来做到这一点,或者我是否应该在最后用正则表达式删除/=""/
?
谢谢
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
作为二进制属性,如您所愿。我正在为你的想法创建一个pull request,为每个人添加这个功能到Nokogiri:
https://github.com/sparklemotion/nokogiri/pull/1291