問題タブ [ngsanitize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AngularJS html bind と Chome アプリケーション CSP
私は AngularJS アプリケーションを開発しており、それから Chrome 拡張機能を作成しようとしています。
アプリケーションは JSON 形式でリモート サーバーからフィードを取得し、値の 1 つは ngSanitize を使用してバインドされた HTML です。それをバインドして、そのコンテンツを Chrome アプリケーションの一部として表示するまでは、すべて問題ありません。
「問題」は強制されているCSPにあり、それを回避する方法がないことを私は知っています(サンドボックスとWebビューがなければ、これはオプション外だと思います)。
リモート リソースに対して XHR リクエストを作成し、それらを blob としてマークすることは、Google によって使用および提案されているものですが、この場合、Angular はすべての HTML の解析と Web ページへのロードを行っています。
私の質問は、誰かが同様の問題を抱えているかどうか、および/またはこれにどのように対処できるかです。
ありがとう!
EDIT 1. HTML には、たとえば img タグが含まれている場合があります。このようにして、テキスト以外は何も表示されません。
EDIT 2.私は仕事をするかもしれない次のアイデアを思いつきました。
- HTML テキストを取得する
- 問題のあるタグの後にディレクティブを追加します (例: im)
- ディレクティブがsrc属性から URL を取得し、XHR リクエストを行うようにします。
- 受信後、BLOB としてマークし、src属性で提供します。
私はそれほど多くの経験を持っていないので、このアイデアに落とし穴はありません。
angularjs - AngularJS で ngBindHtml エラーを抑制する
ユーザーが独自のテキストを作成でき、HTML の使用も許可されているテキストエリアがあります。テキストエリアのテキストは、入力するとすぐに表示されますDIV
。
DIV
には属性ng-bind-html
があります。そのため、すべての変更を解析しようとします。ユーザーが入力したいとしますHello <strong>world</strong>
。
ユーザーがテキストエリアにHelloと入力すると、すべてうまくいきます。<
しかし、彼らが最初に入力するとすぐに、ngSanitize
について不平を言い始めError: [$sanitize:badparse] ...
ます。これは面倒です。場合によっては、これについて警告を受けると便利だと想像できます。しかし、私の場合、エラーは必要ありません。
それらを抑制または無効にする方法はありますか?
javascript - 正しい src で angular cdn を使用して ngSanitize をロードできませんでした
私はAngular JSが初めてです...私は持っています
ただし、 「ngSanitizeのスペルが間違っているか、ロードするのを忘れています」というエラーメッセージが表示されました。リンクが正しく、ngRoute が正常に読み込まれたと確信しています...誰か助けてくれませんか?
javascript - ディレクティブなしで ngModel で HTML を動的にレンダリングできますか?
2 つの異なる要素があります。1 つは、img タグなどの HTML を入力できるディレクティブとしてコンテンツ編集可能な DIV であり、キーを押すと自動的にレンダリングされます。
次に、ng-model にバインドされた textarea があり、ユーザーが HTML を主に img タグで入力できるようにして、自動的にレンダリングできるようにしたいのですが、ユーザーがタグを入力した場合、これが可能かどうかわかりません。そのまま保存。
テキストエリアで私が望むものを達成するための最良の解決策は何ですか? ダイレクトを作成する必要がありますか、それともバインドされている ng-model 変数を活用できるより単純なソリューションがありますか。
最後の質問ですが、入力を安全に処理するために心配する必要があるセキュリティへの影響はありますか? つまり、script タグを入れてほしくありません。img タグ、リンク、そして HTML のフォーマットだけです。レンダリング前に $sanitize(htmlContent) を実行するディレクティブに $santize サービスを使用します。
javascript - Angular ブートストラップ ナビゲーション バー
生成されたブートストラップ navbar 要素に問題があります。以下のようにhtml内にナビゲーションバーを作成すると、次のようになります。
しかし、ドロップダウン要素を「ng-bind-html」に置き換えると:
コントローラー js 内でコンテンツを設定します。
... 動いていない。
キャレット付きのドロップメニュー ボタンが表示されますが、クリックしてもメニューが表示されません。
私は何か間違ったことをしていますか?
前もって感謝します!
キリスト教徒
angularjs - `linky` フィルタは、html タグを含むテキストで使用できますか?
リンクドキュメントから、それはで動作するはずng-bind-html
です。ただし、テキストに html タグが含まれている場合はlinky
、実際の html 解釈をオーバーライドして、URL をリンクに変換します。
これは、たとえば次のように書くことで確認できます
linky docs pageの下部にある例で。
最初にhtmlを使用してサニタイズして解釈しng-bind-html
、後で結果のテキストを解析してクリック可能なリンクを追加する方法はありますか?
angularjs - AngularJS $sce のみ html セーフ a[href]
コメント テキスト ボックスがあり、ngSanitize/$sce を使用して a[href] を安全な html として許可したいだけです。だから私はこれを試しています:
そして、私の contactHiglight ディレクティブの中に私はこれを持っています:
「レンダリングしてください」のみがhrefリンクになることを許可することを期待していますが、常にレンダリングされることも期待しています。私は何が欠けていますか?これを行う簡単な方法はありますか?
angularjs - ngSanitize を使用して一部の html タグを許可する
表示したいユーザーからの安全でない文字列があります。
- < strong > (スペースなし) のようないくつかの html タグが機能するようにします。
- 他のすべての html は、入力したとおりに表示する必要があります (つまり、< を & lt; に置き換える必要があります)。
ngSanitize を使用してこれを行うことができると確信していますが、方法がわかりません。
angularjs - angularjs ng-bind-html と html 文字エンティティ
ng-bind-html="text1"
正常に動作します。結果はなんらかのテキストです
が、ng-bind-html="text2"
機能しません。結果は <b>sometext<b> です
どうすればng-bind-html="text2"
仕事をすることができますか。ありがとうございました。