Tampermonkey:在动态 AJAX 页面上按下按钮时复制源代码
Tampermonkey: Copy source code on button press on dynamic AJAX page
尝试创建一个简单的脚本,目的是在我按下按钮时复制动态 AJAX 页面的源代码。以下代码有效:
// ==UserScript==
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
function doc_keyUp(e) {
switch (e.keyCode) {
case 37:
//Left
getHTML();
break;
default:
break;
}
}
document.addEventListener('keyup', doc_keyUp, false);
function getHTML() {
waitForKeyElements ("html", copyClipboard);
function copyClipboard (jNode) {
GM_setClipboard (jNode.html());
return true;
}
}
但它有一个问题,waitForKeyElements 一直处于活动状态并阻塞了不必要的资源并使剪贴板无法使用。删除 "return true;" 解决了这个问题,但对我没有帮助,因为当我需要再次获取源代码时页面没有重新加载。在这种情况下,waitForKeyElements 不会再次触发,因为我定位的 html 元素保持不变,只有内部内容发生变化。
工作流程:
- 已访问页面
- 已复制源代码
- 页面动态更改,但未重新加载。
- 需要再次复制源代码
使用
解决
document.querySelector("html").outerHTML
正如 Archer 在评论中所建议的那样。
尝试创建一个简单的脚本,目的是在我按下按钮时复制动态 AJAX 页面的源代码。以下代码有效:
// ==UserScript==
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
function doc_keyUp(e) {
switch (e.keyCode) {
case 37:
//Left
getHTML();
break;
default:
break;
}
}
document.addEventListener('keyup', doc_keyUp, false);
function getHTML() {
waitForKeyElements ("html", copyClipboard);
function copyClipboard (jNode) {
GM_setClipboard (jNode.html());
return true;
}
}
但它有一个问题,waitForKeyElements 一直处于活动状态并阻塞了不必要的资源并使剪贴板无法使用。删除 "return true;" 解决了这个问题,但对我没有帮助,因为当我需要再次获取源代码时页面没有重新加载。在这种情况下,waitForKeyElements 不会再次触发,因为我定位的 html 元素保持不变,只有内部内容发生变化。
工作流程:
- 已访问页面
- 已复制源代码
- 页面动态更改,但未重新加载。
- 需要再次复制源代码
使用
解决document.querySelector("html").outerHTML
正如 Archer 在评论中所建议的那样。