1

iframeのコンテンツ(単純なリッチテキストエディターに変換)を取得し、jqueryを使用してそれらのコンテンツを変更しようとしていますが、IEとFFでコンテンツを取得すると、余分なスパンタグが追加されて問題が発生します。スタイリング付きの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

なぜ機能しなかったのかわかりません.innerText(Firefoxを使用しているためかもしれません)。とにかく、ここに別の提案があります:

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

これは、このStrip HTML fromTextJavaScriptの質問に対する受け入れられた回答でした。

于 2012-09-13T23:32:38.987 に答える
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 に答える