从剪贴板中删除不需要的标签
Remove unwanted tags from clipboard
我有一个函数可以成功返回 1 到 100 之间随机数的 ul 列表,并将这些数字放在用户的剪贴板上。这仅适用于 IE,但这不是问题。
这个问题是剪贴板上的结果文本保留了如下所示的 li 标签。有没有办法在数据到达剪贴板之前从数据中删除这些标签?
<LI>68</LI>
<LI>97</LI>
<LI>94</LI>
<LI>43</LI>
<LI>45</LI>
<LI>65</LI>
JS代码:
function ReturnRandomNumbers() {
var howManyInt = parseInt(document.getElementById("txtMultiples").value);
var listNumbers = document.getElementById("listNumbers");
var i = 0;
if (howManyInt < 101 && howManyInt > 0) {
listNumbers.innerHTML = "";
while (i < howManyInt) {
AddItemToList(randomNumber());
i++;
}
window.clipboardData.setData("text",listNumbers.innerHTML);
alert(listNumbers.innerHTML);
} else {
alert("Value must be between 1 and 100");
}
}
function AddItemToList(item) {
var ol = document.getElementById("listNumbers");
var li = document.createElement("li");
li.appendChild(document.createTextNode(item));
ol.appendChild(li);
}
将您的 ReturnRandomNumbers()
函数修改为:
function ReturnRandomNumbers()
{
var howManyInt = parseInt(document.getElementById("txtMultiples").value);
var listNumbers = document.getElementById("listNumbers");
var i = 0;
var strForClipboard = '';
if (howManyInt < 101 && howManyInt > 0) {
listNumbers.innerHTML = "";
while (i < howManyInt) {
var randNumb = randomNumber();
strForClipboard += (strClipboard ? '\n' : '') + randNumb;
AddItemToList(randNumb);
i++;
}
window.clipboardData.setData("text",strForClipboard);
alert(strForClipboard);
}
else {
alert("Value must be between 1 and 100");
}
}
var str = "<LI>68</LI>\n<LI>97</LI>\n<LI>94</LI>\n<LI>43</LI>\n<LI>45</LI>\n<LI>65</LI>"
或
var str = listNumbers.innerHTML;
您想从字符串中去除 li
标签,您可以进行正则表达式匹配并替换
var stripped = str.replace(/<\/*LI>/g,'');
哪个会给
"68
97
94
43
45
65"
将其传递到剪贴板window.clipboardData.setData("text",stripped);
我有一个函数可以成功返回 1 到 100 之间随机数的 ul 列表,并将这些数字放在用户的剪贴板上。这仅适用于 IE,但这不是问题。 这个问题是剪贴板上的结果文本保留了如下所示的 li 标签。有没有办法在数据到达剪贴板之前从数据中删除这些标签?
<LI>68</LI>
<LI>97</LI>
<LI>94</LI>
<LI>43</LI>
<LI>45</LI>
<LI>65</LI>
JS代码:
function ReturnRandomNumbers() {
var howManyInt = parseInt(document.getElementById("txtMultiples").value);
var listNumbers = document.getElementById("listNumbers");
var i = 0;
if (howManyInt < 101 && howManyInt > 0) {
listNumbers.innerHTML = "";
while (i < howManyInt) {
AddItemToList(randomNumber());
i++;
}
window.clipboardData.setData("text",listNumbers.innerHTML);
alert(listNumbers.innerHTML);
} else {
alert("Value must be between 1 and 100");
}
}
function AddItemToList(item) {
var ol = document.getElementById("listNumbers");
var li = document.createElement("li");
li.appendChild(document.createTextNode(item));
ol.appendChild(li);
}
将您的 ReturnRandomNumbers()
函数修改为:
function ReturnRandomNumbers()
{
var howManyInt = parseInt(document.getElementById("txtMultiples").value);
var listNumbers = document.getElementById("listNumbers");
var i = 0;
var strForClipboard = '';
if (howManyInt < 101 && howManyInt > 0) {
listNumbers.innerHTML = "";
while (i < howManyInt) {
var randNumb = randomNumber();
strForClipboard += (strClipboard ? '\n' : '') + randNumb;
AddItemToList(randNumb);
i++;
}
window.clipboardData.setData("text",strForClipboard);
alert(strForClipboard);
}
else {
alert("Value must be between 1 and 100");
}
}
var str = "<LI>68</LI>\n<LI>97</LI>\n<LI>94</LI>\n<LI>43</LI>\n<LI>45</LI>\n<LI>65</LI>"
或
var str = listNumbers.innerHTML;
您想从字符串中去除 li
标签,您可以进行正则表达式匹配并替换
var stripped = str.replace(/<\/*LI>/g,'');
哪个会给
"68 97 94 43 45 65"
将其传递到剪贴板window.clipboardData.setData("text",stripped);