javascript - 通过地址栏加载远程 JavaScript 文件

标签 javascript load address-bar

是否可以从地址栏加载远程 JavaScript 文件?

我一直在尝试将其放入地址栏:

javascript:src='http://depot.com/file.js';funcname();

我不会用它做坏事。我只是在测试我的网站,仅此而已。如果你想保护你的网站,你必须先学会攻击它,对吧?

最佳答案

我想您应该能够执行以下操作:

javascript:(function () {
  var newScript = document.createElement('script');
  newScript.type = 'text/javascript';
  newScript.src = 'http://depot.com/file.js';
  document.getElementsByTagName('body')[0].appendChild(newScript);
})();

这是一个非常有用的示例(将其粘贴到您的地址栏中):

javascript:(function () {
  var newScript = document.createElement('script');
  newScript.type = 'text/javascript';
  newScript.src = 'http://cornify.com/js/cornify.js';
  document.getElementsByTagName('body')[0].appendChild(newScript);

  for (var i = 0; i < 5; i++) {
    newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.src = 'http://cornify.com/js/cornify_run.js';
    document.getElementsByTagName('body')[0].appendChild(newScript);
  }
})();

瞧:

Stack Overflow cornified

其实是这样的cornify.com在他们的书签中包含远程脚本。


更新:

作为@Ben noted in the other answer ,调用远程脚本中定义的函数并不是那么简单。 Ben 针对这个问题提出了一种解决方案,但还有另一种解决方案,即 cornify 正在使用的解决方案。如果查看 http://cornify.com/js/cornify_run.js,您会发现该文件中只有一个函数调用。你可以将你的 funcname() 调用放在一个单独的 JavaScript 文件中,就像 cornify 所做的那样,因为脚本 block 保证按照它们插入的顺序执行。然后您必须包括这两个脚本,如以下示例所示:

javascript:(function () {
  var newScript = document.createElement('script');
  newScript.type = 'text/javascript';
  newScript.src = 'http://depot.com/file.js';
  document.getElementsByTagName('body')[0].appendChild(newScript);

  newScript = document.createElement('script');
  newScript.type = 'text/javascript';
  newScript.src = 'http://depot.com/file_run.js';
  document.getElementsByTagName('body')[0].appendChild(newScript);
})();

file_run.js 仅包含对 funcname() 的调用。

关于javascript - 通过地址栏加载远程 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3742118/

相关文章:

javascript - 对于每个单元格循环 - Excel JavaScript API

javascript - Python 打印与 Javascript console.log()

javascript - Android - 允许 XMLHttpRequest 到 API 级别 < 16 上的本地文件吗?

php - PHP 的 URL 参数

javascript - 向下滚动时,粘性标题过渡变得跳跃和丑陋

javascript - .html() 、 innerHTML() 和 .text() 不更改文本

load - 如何为网站设置负载/压力测试?

Java 类路径,Unix 上的 Weblogic 中不带 .jar 扩展名的 jar 文件

c++ - IE 地址栏搜索。我需要在当前结果列表的末尾添加其他结果列表

javascript - GWT:隐藏移动设备上的地址栏