您好我尝试修改所有iframe的宽度属性
这里我做了什么:
var editor = tinymce.get('editor1');
var content = editor.getContent();
content = content.replace(/width=".*?"/ig, 'width="660"');
editor.setContent(content);
它有效但我的正则表达式会修改包含width属性的所有标记,我想要的只是修改iframe width属性
答案 0 :(得分:1)
我会将内容复制到容器元素中并操纵DOM,然后将其复制回编辑器。像这样:
var editor = tinymce.get('editor1');
var content = editor.getContent();
var container = document.createElement('div');
container.innerHTML = content;
var iframes = container.getElementsByTagName('iframe');
Array.prototype.forEach.call(iframes, function(iframe){
iframe.setAttribute('width','660');
});
editor.setContent(container.innerHTML);
答案 1 :(得分:1)
这是使用正则表达式的解决方案,但我建议其他解决方案,最好使用DOM API而不是正则表达式。
var str = '<p><iframe src="someurl.com" width="540" height="450" scrolling="yes" style="border: none;"></iframe></p><p> toto </p><p><iframe src="someurl.com" width="540" height="450" scrolling="yes" style="border: none;"></iframe></p>';
str = str.replace(/(<iframe.*?)width="\d+"(.*?<\/iframe>)/gu, '$1width="660"$2');
console.log(str);
答案 2 :(得分:0)
当你使用jquery
时,我会这样:
$('iframe').attr("width", function(index,attr) {
return 600;
});