FlexのTextareaのhtmltextセッターコードにアクセスできますか?
-
04-10-2019 - |
質問
ご挨拶、htmltextをTextareaコントロールに設定すると、テキストプロパティにはTextのHTML無料バージョンが含まれていることがわかります。そのため、コンテンツからHTMLをリッピングしている場所にパーサーがあります。これは私の目的のために非常に役立ちます。ただし、Flexソースコードに基づいて、HTMLの設定はUitextField.ASで行われます。これは、TextAreaのテキストフィールドメンバーのタイプです。作業を行う行は、super.htmltext = value;関数でパブリック関数をオーバーライドするhtmltext(value:string):void
クラスのHieArarchyに従って、Flash PlayerのTextfieldクラスを拡張するFlyxtextfieldクラスに行き着きます。
私が後にしている機能はフラッシュプレーヤーにあるように見えます。それでは、このHTMLクリーニング機能にアクセスする方法はありますか?ここに何かが足りませんか?
よろしくセレフ
解決
Regexがあなたを失敗させた場合、ここにあなたがチェックアウトしたいものがあります:
var t:String = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(x:XML):String {
var t:String = "";
var children:XMLList = x.children();
var child:XML;
for(var i:Number = 0; i < children.length(); i++){
child = children[i];
if(child.nodeKind() == "text")
t += child.toString();
else if(child.nodeKind() == "element")
t += stripTags(child);
}
return t;
}
var x:XML = new XML("<root>" + t + "</root>");
XML.ignoreWhitespace = false;
var s:String = stripTags(x);
trace(s);
PS:このActionScriptコードをテストしていません。これは、テストして動作していることがわかった同等のJavaScriptコードを示します。どちらもECMAScriptに従っているため、ActionScriptで機能すると思います。
var t = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(str){
function strip(x){
var t = "";
var children = x.children();
var child;
for(var i = 0; i < children.length(); i++){
child = children[i];
if(child.nodeKind() == "text")
t += child.toString();
else if(child.nodeKind() == "element")
t += strip(child);
}
return t;
}
var xml = new XML("<root>" + str + "</root>");
XML.ignoreWhitespace = false;
return strip(xml);
}
var s = stripTags(t);
console.log(s);
出力:
asd This is some text :)
and more
他のヒント
いいえ、フラッシュプレーヤーのネイティブクラスにコードにアクセスする方法はありません。
ただし、Regexを使用して、コンテンツ内のすべてのHTMLタグを簡単に解析できるはずです。
ただし、テストされていませんが、ここにあります 1つのオプション それはGoogleで登場しました。 Flexで使用するだけです。だから、あなたはおそらくこのようなことをすることができます:
var regEx : RegExp = new RegExp('<(.|\n)*?>');
var noHTMLText = htmlText.replace(regEx , '');
もちろん、これはブラウザで書かれていました。 FlexのRegexの詳細について.