修改iframe属性

时间:2017-06-21 14:06:35

标签: javascript jquery regex

您好我尝试修改所有iframe的宽度属性

这里我做了什么:

var editor = tinymce.get('editor1'); 
var content = editor.getContent();

content = content.replace(/width=".*?"/ig, 'width="660"');
editor.setContent(content);

它有效但我的正则表达式会修改包含width属性的所有标记,我想要的只是修改iframe width属性

3 个答案:

答案 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;
});

请参阅:https://jsfiddle.net/vj0ohnav/2/