我试图获取iframe的内容(转换为简单的富文本编辑器),然后使用jquery修改这些内容,但我遇到了问题,因为在IE和FF中,当我获得内容时,它会增加额外的内容span标签和div标签与样式。如何删除这些标签/样式。
这就是我获取内容的方式......
var frame = window.frames['richTextField'].document.body.innerHTML; /////Gets contents of iframe
$("#songRes").html(frame); /////Places info into proper div
我试图找出第一个字符是否是'{',如果是,那么做点什么
var frame = window.frames['richTextField'].document.body.innerHTML; /////Gets contents of iframe
adj = frame.replace(/<div>/gi,"<br \/>").replace(/<\/div>/gi,""); /////String replaces contents of frame
$("#songRes").html(adj+'<hr />'); /////Places info into proper div
var array = adj.split("<br />"); /////Splits each line into array values
var array = frame.split("<br />");
for(var i = 0; i < array.length; i++){
var str = array[i];
if(str.charAt( 0 ) != '{'){/**/}else{/**/} //
}
但问题是它将起始字符显示为'&lt;'来自我没有添加的span标记。
答案 0 :(得分:0)
我不知道为什么.innerText
不起作用(可能是因为你使用的是Firefox)。无论如何,这是另一个建议:
function strip(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
return tmp.textContent||tmp.innerText;
}
这是Strip HTML from Text JavaScript这个问题的公认答案。
答案 1 :(得分:0)
我找到了一个惊人的网站,它基本上重写了javascript的php代码。我从那里使用了strip_tags函数。看看......
function strip_tags (input, allowed) {
allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
});
}
在...... phpjs.org
找到它