Tampermonkey:在动态AJAX页面上按下按钮复制源代码

时间:2018-02-08 09:25:33

标签: javascript jquery ajax tampermonkey

尝试创建一个简单的脚本,目的是在按下按钮时复制动态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元素保持不变,只有内部内容发生变化。

工作流:

  1. 页面访问
  2. 已复制源代码
  3. 页面动态更改,但未重新加载。
  4. 应再次复制源代码

1 个答案:

答案 0 :(得分:0)

使用

解决
document.querySelector("html").outerHTML

正如Archer在评论中所建议的那样。