1

我试图获取 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{/**/} // 
  }

但问题是它从我没有添加的跨度标签中将起始字符显示为“<”。

4

2 回答 2

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找到它

于 2012-09-18T22:40:08.297 回答
0

我不知道为什么.innerText不起作用(可能是因为您使用的是 Firefox)。无论如何,这是另一个建议:

function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent||tmp.innerText;
}

这是从 Text JavaScript问题中剥离 HTML 的公认答案。

于 2012-09-13T23:32:38.987 回答