相关疑难解决方法(0)

如何使用jQuery解码HTML实体?

如何使用jQuery解码字符串中的HTML实体?

html javascript jquery

327
推荐指数
7
解决办法
31万
查看次数

解码其中包含特殊HTML实体的字符串的正确方法是什么?

假设我从服务请求中获得了一些JSON,如下所示:

{
    "message": "We're unable to complete your request at this time."
}
Run Code Online (Sandbox Code Playgroud)

我不确定为什么那个抄袭被编码为那个('); 我所知道的是我想解码它.

这是一种使用jQuery的方法,它突然出现在我脑海中:

function decodeHtml(html) {
    return $('<div>').html(html).text();
}
Run Code Online (Sandbox Code Playgroud)

但这似乎(非常)hacky.什么是更好的方式?有"正确"的方式吗?

javascript jquery html-entities

184
推荐指数
6
解决办法
20万
查看次数

在Javascript中等效的HtmlSpecialChars?

显然,这比我想象的要难得多.它甚至如此简单......

是否有一个功能相当于PHP的内置于Javascript的htmlspecialchars?我知道自己实现起来相当容易,但使用内置函数(如果可用)更好.

对于那些不熟悉PHP,用htmlspecialchars转换这样的东西<htmltag/>进入&lt;htmltag/&gt;

我知道,escape()并且encodeURI()不以这种方式工作.

html javascript html-encode escaping

157
推荐指数
7
解决办法
17万
查看次数

在Javascript中使用Unescape HTML实体?

我有一些与XML-RPC后端通信的Javascript代码.XML-RPC返回表单的字符串:

<img src='myimage.jpg'>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Javascript将字符串插入HTML时,它们会逐字呈现.我没有看到图像,我真的看到了字符串:

<img src='myimage.jpg'>
Run Code Online (Sandbox Code Playgroud)

我的猜测是HTML正在通过XML-RPC通道进行转义.

我怎样才能在Javascript中取消字符串?我尝试了这个页面上的技术,但未成功:http://paulschreiber.com/blog/2008/09/20/javascript-how-to-unescape-html-entities/

诊断问题的其他方法有哪些?

html javascript xml-rpc escaping

147
推荐指数
6
解决办法
13万
查看次数

如何在输入字段中添加Font Awesome图标?

如何使用Font Awesome中包含的搜索图标进行输入?我的网站上有一个搜索功能(基于PHPmotion),我想用于搜索.

这是代码:

<div id="search-bar">

      <form method="get" action="search.php" autocomplete="off" name="form_search">
        <input type="hidden" name="type" value="videos" />
            <input autocomplete="on" id="keyword" name="keyword" value="Search Videos" onclick="clickclear(this,
            'Search Videos')" onblur="clickrecall(this,'Search Videos')" style="font-family: verdana; font-weight:bold;
            font-size: 10pt; height: 28px; width:186px; color: #000000; padding-left: 2px; float:left; border: 1px solid black; background-color:
            #ffffff" />
            <input type="image" src="http://viddir.com/themes/default/images/search.jpg" height="30" width="30" border="0" style="float:right;"/>
        <div id="searchBoxSuggestions"></div>
        </form>
        </div>
Run Code Online (Sandbox Code Playgroud)

html css html5 css3 font-awesome

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

如何使用Handlebars解码HTML实体

我在我正在构建的应用程序上使用Handlebars模板引擎来呈现从服务器获取的数据.

我知道它默认转义HTML值,你必须使用三个括号{{{text}}}才能text: <p>Example</p>呈现为HTML元素.

问题是,如果我收到的数据(包括HTML标签)已经被转义,我该怎么办?

所以,如果我收到如下数据:

text: &lt;p&gt;Example&lt;/p&gt;
Run Code Online (Sandbox Code Playgroud)

如何强制把手翻译并将其渲染为普通HTML?

javascript templates mustache handlebars.js

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

原生JavaScript或ES6编码和解码HTML实体的方式?

是否有使用JavaScript或ES6 编码或解码HTML实体的本机方法?例如,<将被编码为&lt;.有像html-entitiesNode.js这样的库,但感觉应该有一些内置于JavaScript中的东西已经处理了这个常见的需求.

javascript html-entities node.js

14
推荐指数
3
解决办法
1万
查看次数

React 中 i18next 翻译文件中的 HTML 标签

我在一个项目中使用i18next并且无法绕过在翻译文件中包含 html 标签并正确呈现它们。

我的.json翻译文件的一个例子:

"en": {
  "product": {
    "header": "Welcome, <strong>User!</strong>"
  }
}
Run Code Online (Sandbox Code Playgroud)

这个问题有一个很好的答案,但与 JQuery 相关。我没有使用 JQuery,我的项目是 React,这是我的设置:

import i18next from 'i18next';
import en from 'locales/en';

i18next.
  init({
    lng: 'en',
    fallbackLng: false,
    resources: en,
    debug: false,

    interpolation: {
      escapeValue: false
    }
  });

export default i18next.t.bind(i18next);
Run Code Online (Sandbox Code Playgroud)

在组件中,我有:

import t from 'i18n';

t('product.header')
Run Code Online (Sandbox Code Playgroud)

我想要的 HTML:

Welcome, <strong>User!</strong>
Run Code Online (Sandbox Code Playgroud)

Html 我得到:

Welcome, &lt;strong&gt;User!&lt;/strong&gt
Run Code Online (Sandbox Code Playgroud)

谢谢

html javascript internationalization i18next reactjs

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

数据属性的CSS不会刷新/重绘

在HTML5/JS应用程序中,我们有一些视图,其中包含一些样式,具体取决于data-attribute元素:

喜欢

<li data-level="0"></li>
Run Code Online (Sandbox Code Playgroud)

要么

<li data-level="1"></li>
Run Code Online (Sandbox Code Playgroud)

CSS

li[data-level^="1"] {
  /* some styles */
}
Run Code Online (Sandbox Code Playgroud)

这似乎无处不在page reload.

但是当通过JS以编程方式设置data-attribute时,CSS属性将在所有相关的桌面浏览器中呈现,但不会在移动Safari中呈现.

JS部分看起来像这样:

this.$el.attr('data-level', this.model.getLevel())
Run Code Online (Sandbox Code Playgroud)

关于如何强制应用这些属性的任何想法(刷新/重绘某些东西)?

我想避免使用class属性和不同的类,因为事情比这里显示的更复杂......

javascript css mobile-safari repaint custom-data-attribute

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

利用textarea利用jQuery HTML解码

跟进我的上一个问题 ......

如果攻击者有权访问以下内容,则可以利用此代码encodedText:

return $('<div/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)

例如$("<div/>").html('<img src="X" onerror="alert(\'hi\');" />').text()显示警报.

此答案建议使用a textarea来避免XSS漏洞:

return $('<textarea/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)

这能够安全地处理以前的漏洞利用.

但是,此答案表明使用时仍存在XSS漏洞textarea:

我建议使用更安全,更优化的功能

不要使用jQuery.html().text()解码html实体,因为它不安全,因为用户输入永远不能访问DOM

我的问题是:$('<textarea/>').html(encodedText);假设攻击者可以访问,是否有任何浏览器可以利用来运行XSS encodedText

javascript security xss jquery

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