尝试使用document.execCommand在一个令人满意的Div中粘贴文本。适用于Chrome,而不适用于IE。我正在使用AngularJS

时间:2014-10-09 15:49:04

标签: javascript jquery html angularjs

对于某些处理,我们已点击ng-paste事件。阻止了它的默认行为。如果粘贴的文本有效(最大长度限制),我们需要删除该文本的所有格式,并将纯文本添加到contenteditable div / span

document.execCommand("insertText", false, inputText);
document.execCommand("insertHTML", false, inputText);

这两个选项都适用于Chrome。 在IE中,我们从$sce服务收到错误。

[$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy.

我现在完全没有线索。任何帮助表示赞赏。如果我不清楚,请随时发表评论,我会更新问题。

感谢。

1 个答案:

答案 0 :(得分:0)

嗯,IT方面没有魔力。始终"使用来源"! https://github.com/angular/angular.js/blob/master/src/ng/sce.js#L365

它表明,$sce试图保护您的网站不会插入(可能是恶意的)网址。看看Strict Contextual Escaping。在具有怪异模式的IE8中不支持它,这可能是您的解决方案在那里工作的原因。基本上,您有两种选择:

  1. add specific urls to the Whitelist
  2. disable the $sce completely(不推荐)。