From aaf0c87b6712be0824d699bdae636b565e29c032 Mon Sep 17 00:00:00 2001 From: surunzi Date: Thu, 28 Jul 2016 15:53:39 +0800 Subject: [PATCH] Dev: Use iframe to show cross origin resources --- package.json | 2 +- src/Resources/Resources.es6 | 10 ++++++++-- src/Sources/Sources.es6 | 7 +++++++ src/Sources/Sources.scss | 4 ++++ src/Sources/iframe.hbs | 1 + 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 src/Sources/iframe.hbs diff --git a/package.json b/package.json index 31f49d1..e895e46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eruda", - "version": "1.0.4", + "version": "1.0.5", "description": "Console for Mobile Browsers", "main": "eruda.js", "scripts": { diff --git a/src/Resources/Resources.es6 b/src/Resources/Resources.es6 index a9d93f3..bce2da3 100644 --- a/src/Resources/Resources.es6 +++ b/src/Resources/Resources.es6 @@ -238,24 +238,30 @@ export default class Resources extends Tool sources.set(type, data); parent.showTool('sources'); + + return true; } function linkFactory(type) { return function (e) { + if (!parent.get('sources')) return; + e.preventDefault(); + var url = util.$(this).attr('href'); if (!util.isCrossOrig(url)) { - e.preventDefault(); - return util.get(url, (err, data) => { if (err) return; showSources(type, data); }); + } else + { + showSources('iframe', url); } }; } diff --git a/src/Sources/Sources.es6 b/src/Sources/Sources.es6 index ce6de28..84b9f54 100644 --- a/src/Sources/Sources.es6 +++ b/src/Sources/Sources.es6 @@ -133,6 +133,7 @@ export default class Sources extends Tool this._httpTpl = require('./http.hbs'); this._jsonTpl = require('./json.hbs'); this._rawTpl = require('./raw.hbs'); + this._iframeTpl = require('./iframe.hbs'); } _render() { @@ -154,6 +155,8 @@ export default class Sources extends Tool return this._renderJson(); case 'raw': return this._renderRaw(); + case 'iframe': + return this._renderIframe(); } } _renderImg() @@ -214,6 +217,10 @@ export default class Sources extends Tool { this._renderHtml(this._rawTpl({val: this._data.val})); } + _renderIframe() + { + this._renderHtml(this._iframeTpl({src: this._data.val})); + } _renderHtml(html) { if (html === this._lastHtml) return; diff --git a/src/Sources/Sources.scss b/src/Sources/Sources.scss index dec0268..7aad135 100644 --- a/src/Sources/Sources.scss +++ b/src/Sources/Sources.scss @@ -62,6 +62,10 @@ margin-bottom: 10px; } } + iframe { + width: 100%; + height: 100%; + } .json { @include overflow-auto(x); cursor: default; diff --git a/src/Sources/iframe.hbs b/src/Sources/iframe.hbs new file mode 100644 index 0000000..8841f06 --- /dev/null +++ b/src/Sources/iframe.hbs @@ -0,0 +1 @@ + \ No newline at end of file