[1]下面的2个文件的步骤和说明:
①文件1,先运行一遍,相当于注入外部js文件的作用
②在修改文件2中的cssselector和输出格式后,运行文件2。获得有结果的页面最下方的textarea。
③点击textarea旁边的copy,完成最终的复制。
(注:document.execCommand('copy'),不支持用js执行,(会返回"fail"),但支持点击的事件,(会返回"success")。)
[2]
文件1:
function selText() {
console.clear();
textarea_id = 'copy3'document.getElementById(textarea_id).select();
try {
if (document.execCommand('cut', false, null)) {
// if(document.execCommand('copy', false, null)){
console.log('success') //success info
} else {
console.log('fail') //fail info
}
} catch(err) {
console.log(err)
//fail info
}
}
selText();
文件2:
// have checkbox
var e1 = document.querySelectorAll('div.songList ol li') var e = []
for (var i = 0; i < e1.length; i++) {
if (e1[i].querySelector('input').checked) {
e.push(e1[i].querySelector('a'))
}
}
// common
var str1 = ''
var textarea_id = 'copy3'
var input_id = 'copy4'
// code_b
var e = document.querySelectorAll('div#maincontent div h2')
for (var i = 0; i < e.length; i++) {
// for (var i=0;i<55;i++){
// document.write(e[i].href+'\t'+e[i].innerText+'<br>');
// document.write(e[i].innerText+'\t'+e[i].href+'<br>')
// document.write(e[i].innerText+'<br>');
// console.log(e[i].innerText)
// console.log(e[i].innerText+'\t'+e[i].href)
console.clear();
str1 = str1 + e[i].innerText + '\t' + e[i].href + '\n';
// str1 = str1 + e[i].innerText+'\n';
// copyTextToClipboard(e[i].innerText)
}
// code_e
function again1() {
var body = document.getElementsByTagName('body')[0];
var textarea1 = document.getElementById(textarea_id);
var button1 = document.getElementById(input_id);
if (textarea1) {
body.removeChild(textarea1)
}
if (button1) {
body.removeChild(button1)
}
var textarea1 = document.createElement("textarea");
// textarea1.innerHTML = text;
textarea1.setAttribute('id', textarea_id);
textarea1.setAttribute('cols', '90');
textarea1.setAttribute('rows', '10');
//
var button1 = document.createElement("input");
button1.setAttribute('id', input_id);
button1.setAttribute('type', 'button');
button1.setAttribute('onclick', 'selText()');
button1.setAttribute('value', 'Copy');
//
body.appendChild(textarea1);
body.appendChild(button1);
}
again1();
var textarea1 = document.getElementById(textarea_id);
textarea1.innerHTML = str1; //此处不能用innerText,否则\n会被转换为<br>
console.clear();
console.log(e.length);
其他文件:
// String.prototype.srepeat = function(num=1){
// return new Array(num+1).join(this);
// }
var e = document.querySelectorAll('div#maincontent div h2')
var tab_num = 1
for (var i = 0; i < e.length; i++) {
// for (var i=0;i<55;i++){
var tab_num = 1
console.clear();
str1 = str1 + e[i].innerText + '\t'.repeat(tab_num) + e[i].href + '\n';
// str1 = str1 + e[i].innerText+'\n';
// str1 = str1 + e[i].src+'\n';
// console.log(e[i].innerText)
// console.log(e[i].innerText+'\t'+e[i].href)
}
function spider2(){
var e1 = document.querySelectorAll("ul div [depth='1']")
for (var i1 of e1){
var e2 = [];
var tab_num = 1
str1 = str1 + i1.querySelectorAll('a')[0]['href'] + '\t'.repeat(tab_num) + i1.querySelectorAll('a')[0].innerText + '\n'
var e2 = i1.querySelectorAll("ul div [depth='2']")
for (var i2 of e2){
var e3 = [];
str1 = str1 + i2.querySelectorAll('a')[0]['href']+ '\t'.repeat(tab_num + 1) + i2.querySelectorAll('a')[0].innerText + '\n'
var e3 = i2.querySelectorAll("ul div [depth='3']")
for (var i3 of e3){
str1 = str1 + i3.querySelectorAll('a')[0]['href']+'\t'.srepeat(tab_num + 2) + i3.querySelectorAll('a')[0].innerText + '\n'
}
}
}
}
function again1(){
var textarea_id = 'copy3'
var input_id = 'copy4'
var body = document.getElementsByTagName('body')[0];
var textarea1 =document.getElementById(textarea_id)
var button1 = document.getElementById(input_id)
if (textarea1)
{
body.removeChild(textarea1)
}
if (button1)
{
body.removeChild(button1)
}
var textarea1 = document.createElement("textarea");
// textarea1.innerHTML = text;
textarea1.setAttribute('id',textarea_id);
textarea1.setAttribute('cols','90');
textarea1.setAttribute('rows','10');
//
var button1 = document.createElement("input");
button1.setAttribute('id',input_id);
button1.setAttribute('type','button');
button1.setAttribute('onclick','selText()');
button1.setAttribute('value','Copy');
//
body.insertBefore(button1,body.childNodes[0]);
body.insertBefore(textarea1,body.childNodes[0]);
// body.appendChild(textarea1);
// body.appendChild(button1);
}
again1();
var str1 = '';
spider1();
var textarea1 = document.getElementById(textarea_id);
textarea1.innerHTML = str1;