-1

这是我注入页面的 JavaScript 代码:

javascript:{document.head.innerHTML+='<script>function inject(){alert("hello");}</script>';
document.body.innerHTML+='<button onclick="inject()">Run</button>';}

在 URL 栏中运行此代码后,我检查了网站的源代码。按钮和功能定义都存在,但是按下按钮不会像预期的那样运行警报。

可能是什么问题呢?

4

2 回答 2

8
  1. 一些浏览器不再接受 javascript:直接从地址栏,它们需要您从小书签调用脚本

  2. 你的语法带有一厢情愿的味道。你在这里尝试的东西永远不会那样工作

这个语法:

javascript:(function() { var s = document.createElement("script"); s.src="somejsurl.js";document.getElementsByTagName("head")[0].appendChild(s)})()

可能是一个更好的开始

要执行此操作,您需要创建一个 html 页面

<a href="javascript:(function() { var s = document.createElement('script'); s.src='somejsurl.js';document.getElementsByTagName('head')[0].appendChild(s)})()">Exec</a>

在href代码中使用单引号并将“Exec”加载并拖动到书签

在测试时,Chrome 和 Firefox 有一个你可以使用的命令行

如果要创建脚本而不加载它,则需要将脚本内联到您创建的按钮中:

javascript:(function() { var b = document.createElement("button"); b.onclick=function() { alert('hello')}; b.innerTHML='Hello';})()
于 2013-09-29T13:59:32.387 回答
1

出于安全考虑,一些浏览器已决定限制在 URL 栏中使用 javascript...

于 2013-09-29T13:54:34.053 回答