如何从您无权访问其源代码的站点编辑 HTML?
How to edit HTML from a site you don't have access to source of?
在 Chrome 开发工具中,您可以对样式元素进行编辑和持久更改。
https://developer.chrome.com/devtools/docs/workspaces
您还可以从任何网站编辑任何 HTML 并实时预览,编辑任何网站,包括您不拥有或无权访问的网站。
但是,我想坚持不懈地编辑 HTML,而不仅仅是样式元素。我该怎么做?
更具体地说,我想更改静态资源的 URL,就像它们在 CDN 上一样。
现在:
Request: http://www.targetsite.tld/
<html>
<img src="http://www.targetsite.tld/image1.jpg">
</html>
目标:
Request: http://www.targetsite.tld/
<html>
<img src="http://testcdn.tld/targetsite.tld/image1.jpg">
</html>
Hosts 文件编辑将无法工作,因为初始请求将无法解析到正确的服务器。我真的很想从现有服务器加载文档,而不是将整个源保存在某个地方,然后对其进行编辑。
我找到了这个 nodejs 脚本,但仍然希望我能在浏览器的客户端实现更简单的功能。
http://www.deanmao.com/2012/08/28/modify-a-site-you-dont-own/
我可能需要某种浏览器扩展,允许我标记某些 dom 元素节点,为它们编写一些重写,保存此配置文件,然后重新加载页面。
有这样的东西吗?
答案是用户脚本。特别是用于 FireFox 的 GreaseMonkey 和用于 Chrome 的 TamperMonkey。这些浏览器 add-ons/extensions 允许您操作您访问的页面上的 DOM 元素,使用简单的 JavaScript 来实现您的目标。
这条路线,我达到了我的目标,但要注意一点:
浏览器首先解析原始 HTML,然后对它在原始源页面上找到的资产发出所有 HTTP 请求。只有这样,用户脚本才会操纵内容。您使用用户脚本即时进行的任何编辑都会在原始 HTML 之后加载。所以就我而言:
<img src="http://www.targetsite.tld/image1.jpg">
原始图像是从原始主机请求的。然后我在 TamperMonkey 中的用户脚本操纵 URL,导致浏览器也请求我的新 img:
<img src="http://testcdn.tld/targetsite.tld/image1.jpg">
换句话说,它并没有替换图像,而是复制了请求,改变了第二个。当然,这对性能测量等有影响。所以要小心。
在 Chrome 开发工具中,您可以对样式元素进行编辑和持久更改。
https://developer.chrome.com/devtools/docs/workspaces
您还可以从任何网站编辑任何 HTML 并实时预览,编辑任何网站,包括您不拥有或无权访问的网站。
但是,我想坚持不懈地编辑 HTML,而不仅仅是样式元素。我该怎么做?
更具体地说,我想更改静态资源的 URL,就像它们在 CDN 上一样。
现在:
Request: http://www.targetsite.tld/
<html>
<img src="http://www.targetsite.tld/image1.jpg">
</html>
目标:
Request: http://www.targetsite.tld/
<html>
<img src="http://testcdn.tld/targetsite.tld/image1.jpg">
</html>
Hosts 文件编辑将无法工作,因为初始请求将无法解析到正确的服务器。我真的很想从现有服务器加载文档,而不是将整个源保存在某个地方,然后对其进行编辑。
我找到了这个 nodejs 脚本,但仍然希望我能在浏览器的客户端实现更简单的功能。
http://www.deanmao.com/2012/08/28/modify-a-site-you-dont-own/
我可能需要某种浏览器扩展,允许我标记某些 dom 元素节点,为它们编写一些重写,保存此配置文件,然后重新加载页面。
有这样的东西吗?
答案是用户脚本。特别是用于 FireFox 的 GreaseMonkey 和用于 Chrome 的 TamperMonkey。这些浏览器 add-ons/extensions 允许您操作您访问的页面上的 DOM 元素,使用简单的 JavaScript 来实现您的目标。
这条路线,我达到了我的目标,但要注意一点:
浏览器首先解析原始 HTML,然后对它在原始源页面上找到的资产发出所有 HTTP 请求。只有这样,用户脚本才会操纵内容。您使用用户脚本即时进行的任何编辑都会在原始 HTML 之后加载。所以就我而言:
<img src="http://www.targetsite.tld/image1.jpg">
原始图像是从原始主机请求的。然后我在 TamperMonkey 中的用户脚本操纵 URL,导致浏览器也请求我的新 img:
<img src="http://testcdn.tld/targetsite.tld/image1.jpg">
换句话说,它并没有替换图像,而是复制了请求,改变了第二个。当然,这对性能测量等有影响。所以要小心。