相关疑难解决方法(0)

将 html 显示为文本

在我的游戏中,我将玩家列表从canvas更改为html,因此出现了一个漏洞,任何玩家都可以给自己起一个可以插入js代码的名称,例如,当<script>alert(1);</script>玩家出现时,该名称将适用于所有玩家在玩家列表中。问题是,如何让html不起作用而播放器输入的所有内容都显示为文本?html 中的标签pre对我没有帮助:(

将玩家添加到玩家列表的代码:

const drawLeaderboard = function() {
    if (!settings.showLeaderboard || !leaderboard.items) return wjQuery('#leaderboard').css('display', 'none');
    else wjQuery('#leaderboard').css('display', 'block');
    
    
    let text, vip = false,
        isMe = false;
    
    const texts = {
        all: '',
        emoji: ''
    };
    
    for (let i = 0; i < leaderboard.items.length; i++) {
        if (leaderboard.type == 'text')
            text = leaderboard.items[i];
        else
            text = leaderboard.items[i].name,
            isMe = leaderboard.items[i].me,
            vip = leaderboard.items[i].vip;
        
        texts.all += `<div class="item"${isMe ? 'style="color: #faa;"' : ''}>${text.trim()}</div>`;
        texts.emoji += `<div class="item">${vip ? …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

将 JSON 打印到屏幕以用于剪切和粘贴

这听起来真的是贫民窟,但我需要将一些 Javascript 打印到浏览器屏幕上,以便可以将其剪切并粘贴到另一个程序中。

但是,我使用的是JSON.stringify()from json2.js,它不会转义字符,例如引号和换行符 (",\n),它们实际上是 JSON 对象的控制部分,需要进行转义。

例如,我会得到这样的字符串,在导入到其他程序时会导致问题:

{
    string_property_01 : "He said "HI"";  // The string terminates after "He said "
}
Run Code Online (Sandbox Code Playgroud)

是否有任何库可以用来转义我需要在这里转义的所有字符?

谢谢!

javascript json escaping stringify

4
推荐指数
1
解决办法
3842
查看次数

如何用&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万
查看次数

JavaScript/jQuery:如何获取HTML并显示HTML,包括标签

我正在使用jQuery,并有一个HTML块如下:

   <div id="html-block">
       <h1>Heading 1</h1>
       <h2>Heading 2</h2>
       <h3>Heading 3</h3>
    </div>
Run Code Online (Sandbox Code Playgroud)

其呈现为:

标题1

标题2

标题3

我要做的是显示用于创建此块的HTML.

如果我使用 $(this).clone().insertAfter(this);简单重复我们看到的渲染,但我实际想在浏览器中看到的是:

<div id="html-block">
       <h1>Heading 1</h1>
       <h2>Heading 2</h2>
       <h3>Heading 3</h3>
 </div>
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

javascript jquery

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

JAXB - 包含HTML页面的unmarshall元素

我使用JavaScript将页面源代码(document.getElementsByTagName('html')[0].innerHTML)发送到我的web服务元素中<pagesource>...</pagesource>.显然,那里有HTML标签,因此我在解组时遇到错误.有可能以某种方式解析这个或逃避所有坏人物吗?

ERROR

com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 52; columnNumber: 3; The element type "input" must be terminated by the matching end-tag "</input>".]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:514)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:215)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)
at cz.fit.cvut.swe.pagerating.ws.WebService.addRating(WebService.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:43)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) …
Run Code Online (Sandbox Code Playgroud)

javascript java jaxb

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

如何使用 jQuery 从文本输入 .val() 中转义 HTML?

使用 jQuery,我使用以下命令捕获表单的文本输入.val()

$newItem = $('input[type=text]').val();
Run Code Online (Sandbox Code Playgroud)

问题是它将.val()保留任何 html 标签,如果我附加变量,这些标签将应用在 DOM 中。

转义 HTML 输入并仅使用文本值的推荐安全方法是什么?

jquery

0
推荐指数
1
解决办法
7658
查看次数

标签 统计

javascript ×5

jquery ×4

html ×2

escaping ×1

java ×1

jaxb ×1

json ×1

stringify ×1