相关疑难解决方法(0)

为什么浏览器会自动unescape html标签属性值?

下面我有一个HTML标记,并使用JavaScript来提取窗口小部件属性的值.此代码将提醒<test>而不是&lt;test&gt;,因此浏览器会自动unescapes属性值:

alert(document.getElementById("hau").attributes[1].value)
Run Code Online (Sandbox Code Playgroud)
<div id="hau" widget="&lt;test&gt;"></div>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 除了对属性内容进行双重转义外,是否可以以任何方式阻止此行为?(这应该是这样的:&amp;lt;test&amp;gt;)
  2. 有谁知道浏览器为什么会这样?HTML规范中是否有任何地方明确提到此行为?

html browser tags attributes

12
推荐指数
1
解决办法
404
查看次数

如何从jquery中的字符串中获取Raw html?

&lt;label class='ash'&gt;Comment Removed&lt;/label&gt;在数据库中.

当我在网格上显示这个.我在页面上看到了这个:

<label class='ash'>Removed</label>
Run Code Online (Sandbox Code Playgroud)

其实我应该以灰色删除

我怎样才能像在MVC 3 Razor视图中那样将其转换为Html?

@Html.Raw(HttpUtility.HtmlDecode(comment.txt)) works fine
Run Code Online (Sandbox Code Playgroud)

我在MVC 3上使用jquery 1.6

我试过了:

$("<label class='ash'>Comment Removed</label>").html()
   unescape($(txt)).html()
Run Code Online (Sandbox Code Playgroud)

可能很简单,但无法弄清楚

html javascript jquery html-encode asp.net-mvc-3

11
推荐指数
1
解决办法
2万
查看次数

什么是替换性能秘密?[HTML转义]

我花了一些时间寻找最好的方法来逃避html字符串并找到一些讨论:讨论1 讨论2.它引导我替换所有功能.然后我做了性能测试,并试图找到实现类似速度的解决方案,但没有成功:(

这是我的最终测试用例集.我在网上找到它并随着我的尝试扩展(底部有4个案例)但仍无法达到replaceAll()性能.

什么是秘密女巫使replaceAll()解决方案如此迅速?

映入眼帘!

代码片段:

String.prototype.replaceAll = function(str1, str2, ignore) 
{
   return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
};
Run Code Online (Sandbox Code Playgroud)

qwerty的学分

迄今为止最快的案例:

html.replaceAll('&', '&amp;').replaceAll('"', '&quot;').replaceAll("'", '&#39;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
Run Code Online (Sandbox Code Playgroud)

javascript performance

10
推荐指数
1
解决办法
781
查看次数

jQuery追加为文本而不是html

以下代码从Ajax json调用获取值,并应将其附加到具有相应值的div.事实是,它作为文本而不是html附加,所以我在页面上看到我的html作为文本.我怎样才能解决这个问题?

$.ajax({
    url: "https://domain.com/maprequest.php",
    type: "POST",
    dataType: 'json',
    data: JSON.stringify(url_array),
    crossDomain: true,
    success: function(response) {
        $.each(response, function(k, v) {
            if (v != "") {
                $('.offer-list li .img a')[k].append("<div class='hoverbox'><img src='" + v + "' alt='hover' /></div>");
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

8
推荐指数
1
解决办法
3393
查看次数

有没有一种简单的方法可以在JavaScript中将文本转换为HTML?

可能重复:
使用jQuery JavaScript/jQuery HTML编码转义HTML字符串

例如,如果我想向用户显示x < 3HTML中的字符串,我需要替换该<字符&lt;.是否有预先构建的函数可以在JavaScript或jQuery中执行此操作,将任何文本字符串转换为相应的HTML?

html javascript jquery

7
推荐指数
1
解决办法
5万
查看次数

用js替换字符串的最快方法?

当我提交/ POST数据到服务器,我需要的HTMLEncode它的字符(相关的),因为通过设置禁止输入检查validationRequest = false不是一个好的做法.

所有解决方案最终都在替换字符串中的字符:

这就是我写的.

function htmlEncode(str) {
    str = str.replace(/\&/g, "&amp;");
    str = str.replace(/\</g, "&lt;");
    str = str.replace(/\>/g, "&gt;");
    str = str.replace(/ /g, "&nbsp;");
    return str;
}
Run Code Online (Sandbox Code Playgroud)

但是显然正则表达式可以用更快的东西代替(不要误解我 - 我喜欢正则表达式).

此外,使用索引+子字符串似乎很浪费.

这样做的最快方法是什么?

javascript jquery html-encode

7
推荐指数
1
解决办法
6244
查看次数

验证检测到危险的客户端输入 - 从ASP.NET中的TinyMCE发布

当我从ASP.NET MVC视图中的TinyMCE发布时,我收到此错误.

错误:

请求验证已检测到潜在危险的客户端输入值,并且请求的处理已中止

从谷歌搜索,它说只是在我做的顶部的Page指令中添加了validateRequest,但我仍然得到这个错误.如您所见,下面是我在视图中的代码:

<%@ Page validateRequest="false" Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc scripting tinymce

6
推荐指数
3
解决办法
4473
查看次数

如何在jQuery中添加文本(而不是HTML)?

我意识到我可以使用以下内容将元素添加到元素:

$(...).prepend(myText);
Run Code Online (Sandbox Code Playgroud)

但是,如果myText是,让我们说,"<span>"我实际上希望显示该文本,.prepend()而是预先添加一个空的span元素.推荐的解决方法是什么?我是否真的需要手动HTML转义文本或是否有更优雅的东西?

jquery dom-manipulation

6
推荐指数
1
解决办法
8694
查看次数

发送没有html标签的文本

我想在JavaScript中构建一些函数,将文本发送textareadiv.

我想要它做以下事情

如果用户尝试将html源发送到textarea,它将显示文本,而不是实际的html源.

例如:

如果用户尝试发送: <img src='aa.png'>

我想在div中看到文字:<img src='aa.png'>,并且不想看到实际图像:aa.png

html javascript

5
推荐指数
1
解决办法
123
查看次数

如何用&lt;替换<和> 和&gt; 用jQuery或JS

我一直在寻找一天左右如何用JS或jQuery做些什么,并找到了几个解决方案,但还没有什么可靠的.

我想用这个:

<code class="codeIt">

  <h2> This is an H2 </h2>

</code>
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

<h2> This is an H2 </h2>

我知道我可以做到这一点:

<code class="codeIt">

  &lt;h2&gt; This is an H2 &lt;/h2&gt;

</code>
Run Code Online (Sandbox Code Playgroud)

...但我不想手动搜索并替换我在这些块中的代码,而是在浏览器中即时完成.这可能吗?

我很喜欢jQuery,所以我尝试过.replaceWith或者是JavaScript,.replace但到目前为止我还没有得到它需要的地方.我正在替换整个标签或做其他错误.

我的问题是:我怎么会写一个简单的jQuery(或定期JS)帮我代替我<和我>与HTML实体喜欢&lt;&gt;我的内<code>标签.

我感谢任何帮助,谢谢.

更新:

我设法让它工作得很好@Prisoner如何解释,它非常漂亮,但是在我的特殊情况下需要稍微扩展,因为我有一个以上的代码块.codeIt,所以我必须检查每个元素和输出...否则它将保持相同的输出(如第一个块)

这是小提琴

感谢大家的回答.

html javascript jquery

4
推荐指数
2
解决办法
2万
查看次数