相关疑难解决方法(0)

有没有办法在javascript控制台中将上下文更改为iframe?

我想更改在webkit开发人员工具/ firebug控制台中执行的javascript的上下文,以执行它从页面上的iframe内部运行的代码.

我知道我可以通过在单独的页面上打开iframe中的页面来实现这一点,但我想在与父框架交互的地方运行代码.

javascript console iframe firebug

104
推荐指数
4
解决办法
5万
查看次数

使用自定义HTML而不是URL打开新选项卡

我正在创建一个Greasemonkey脚本,并且想要打开一个新的选项卡,该选项卡不会显示URL,而是一些HTML,它们是脚本的一部分.所以基本上我想做这样的事情(这显然不起作用):

window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');
Run Code Online (Sandbox Code Playgroud)

任何提示都是受欢迎的!

javascript jquery greasemonkey

30
推荐指数
2
解决办法
3万
查看次数

通过修改 HTTP 标头使用没有 CORS 的 XMLHttpRequest?

我正在使用(已弃用的)Twitter API 1.0 进行一些测试

例如,我想从 API 获取数据,客户端使用来自任何跨源网页的 AJAX 浏览器请求。它可以是新的空白标签、本地 HTML 页面或任何现有网站。

我试过 JSONP,它工作得很好,但我想使用默认的 XMLHttpRequest 即使 Twitter 服务器不支持 CORS http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

例如,在 google.com 主页上,我创建了一个对 Twitter API 的简单 AJAX 调用,并使用 Firebug 执行:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.twitter.com/1/friends/ids.json?screen_name=baptx", false);
xhr.send();
Run Code Online (Sandbox Code Playgroud)

由于同源策略,这将不起作用并在 Firebug 上打印错误:

Error: Failure
xhr.send();
Run Code Online (Sandbox Code Playgroud)

它返回一个 HTTP 200 OK 代码,但没有从服务器收到 JSON 数据。

我已经看到来自 google.com 网页的请求和来自 api.twitter 网页的请求之间的两个差异(它适用于 Twitter API 请求,因为它是 API 域名,同源)。

添加了一个带有当前域名的 Origin HTTP 标头:

Origin  https://www.google.com
Run Code Online (Sandbox Code Playgroud)

Referer HTTP 标头不是 https://api.twitter.com/像来自 api.twitter.com 页面的请求,但在我的情况下是:

Referer https://www.google.com/webhp?hl=en
Run Code Online (Sandbox Code Playgroud)

这就是为什么我尝试删除 Origin HTTP …

javascript ajax cross-domain http-headers cors

5
推荐指数
1
解决办法
2万
查看次数