我正在使用书签将当前页面源发送到服务器函数,然后该函数对其进行处理(存储它,不需要向用户返回任何信息)。
警告:前面是丑陋的 Javascript,它不是我通常需要使用的语言。
这是小书签,印刷精美,便于阅读:
javascript: (function () {
var h = document.documentElement.innerHTML;
function c(a, b) {
var c = document.createElement("textarea");
c.name = a;
c.value = b;
d.appendChild(c)
}(document), d = document.createElement("form");
d.method = "POST";
d.action = "http://example.com/do.php";
d.enctype = "multipart/form-data";
d.target = "_blank";
c("h", h);
c("u", "1234");
document.body.appendChild(d);
d.submit();
})();
这基本上是可行的,“do.php”以形式变量 h 接收头部和身体部分。
但是,它似乎对每个页面只工作一次。如果在同一页面上按两次小书签,则不会发生任何事情。当页面重新加载时,它会再次工作。有什么我应该重置的吗?(当然,运行一次就足够了,但最好在第二次按下时向用户提供一些反馈)。
其次,这会弹出一个新的选项卡/窗口。我可以通过让 do.php 返回一些 javascript 来关闭窗口来解决这个问题(注意:这只是为了测试目的,而不是真正的代码):
<?php
$page = $_REQUEST['h'];
file_put_contents('/tmp/work.txt', $page);
echo '<script type="text/javascript">window.close();</script>"';
?>
丑陋。快速闪现新标签,然后它就消失了。有更好的方法吗?“成功”消息会很好,但我不知道如何合并它。