如何通过字符串进行javascript攻击

时间:2013-08-17 05:01:10

标签: javascript string strikethrough

我想在Javascript中查看文本,但我似乎无法使代码生效。

var message = document.getElementById('helloWorld');
setTextContent(message, 'hello world!'.strike());

非常感谢任何帮助。还想在不使用CSS的情况下做到这一点。

还应该提到这些代码行位于另一个名为totalPackage()的函数中,该函数在用户单击按钮时运行。我希望在调用其他函数时显示我的消息 hello world!

6 个答案:

答案 0 :(得分:1)

试试这个

var message = document.getElementById('helloWorld');
message.innerHTML='<del>helloworld</del>'

答案 1 :(得分:1)

使用 Unicode Character 'COMBINING LONG STROKE OVERLAY' (U+0336)

  

E̶x̶a̶m̶p̶l̶e̶

function strikeThrough(text) {
  return text
    .split('')
    .map(char => char + '\u0336')
    .join('')
}
<input oninput="document.querySelector('#output').innerText = strikeThrough(this.value)" placeholder="type here"><p id="output"></p>

答案 2 :(得分:0)

如果#helloWorld是DIV,那么您可以设置其innerHTML属性。

<div id="helloWorld"></div>

function setTextContent(msg, str) {
    msg.innerHTML = str;
}

var message = document.getElementById('helloWorld');
setTextContent(message, 'hello world!'.strike());

这是一个小提示: http://jsfiddle.net/SXFLw/

答案 3 :(得分:0)

如果您希望分别对您提出的格式进行处理,可以使用字符串原型方法来处理它。 String.strike() 是非标准版,您可能会遇到浏览器兼容性问题。

String.prototype.strike = function() {
    return '<div class="strike">'+ this +'</div>';
};

// <div class="strike"> hello world! </div>
var test = 'hello world!'.strike();

然后在CSS中你可以创建一个名为strike的类。

.strike {
    text-decoration: line-through;
}

<强> JSFiddle

答案 4 :(得分:0)

strike()的正确语法是str.strike()

所以请使用

 setTextContent(message, 'hello world!'.strike());

答案 5 :(得分:0)

JavaScript中已经存在strike方法,但它似乎是非标准的。 正常实现只是将字符串包装在strike标记中。但请注意,结果不再是简单文本,因此将文本节点的textContent属性设置为'some string'.strike()将不会产生预期结果。它只会在文档中将标记显示为纯文本。

您可以随时实施填充,例如:

if (!(typeof String.prototype.strike === 'function')) {
    String.prototype.strike = function () {
        return '<strike>' + this + '</strike>';
    };
}