Javascript 如何制作一个类似GreaseMonkey的脚本,在下三分之一处显示不同的页面?
如果你看一下,底部有很多空白 我希望在那个页面上使用脚本,它利用了一些空白并加载另一个页面(使用类似于iFrame的东西)Javascript 如何制作一个类似GreaseMonkey的脚本,在下三分之一处显示不同的页面?,javascript,iframe,greasemonkey,greasekit,fluid-mac-app-engine,Javascript,Iframe,Greasemonkey,Greasekit,Fluid Mac App Engine,如果你看一下,底部有很多空白 我希望在那个页面上使用脚本,它利用了一些空白并加载另一个页面(使用类似于iFrame的东西) 我想在iFrame类型的东西中加载的URL(在下三分之一)总是查看Amazon产品页面所指向的内容 因此,我希望代码查看页面,并找到链接指向的位置。(因为这是变化的位) 我希望iFrame类型的东西位于下三分之一。(可以是下四分之一,下五分之一..我不是说真的..) 如果你能帮我集思广益,我将非常感激 选读 它不是很油腻,但你可以假设它是 这是给Greasekit的(它
- 我想在iFrame类型的东西中加载的URL(在下三分之一)总是
所指向的内容李>查看Amazon产品页面
- 因此,我希望代码查看页面,并找到链接指向的位置。(因为这是变化的位)
- 我希望iFrame类型的东西位于下三分之一。(可以是下四分之一,下五分之一..我不是说真的..)
//==UserScript==
//@name _Displaying an iframe type thing in the lower third
//@include https://dl.dropboxusercontent.com/u/5546881/*
//@grant none
// ==/UserScript==
我试图回答
var findlink=document.getElementsByTagName('a');
对于(var i=0;i=“查看亚马逊产品页面”i++){
链接结果=findlink.getAttribute('href')
}
$(document.body).append(
''
);
- 由于有jQuery可用,请使用jQuery选择器获取产品链接
- 然后添加iFrame,但给它一个id
- 使用CSS来定位和调整它的大小
var prodLinks = $("td.product_description a:contains('View Amazon Product Page')");
if (prodLinks.length) {
var iframeSrc = prodLinks[0].href;
$("body").append ('<iframe id="gmIframe" src="' + iframeSrc + '"></iframe>');
$("#gmIframe").css ( {
"position": "absolute",
"bottom": "1em",
"left": "2em",
"height": "30%",
"width": "94%",
"z-index": "17",
"background": "#00FF00"
} );
}
var prodLinks=$(“td.product\u说明a:contains('查看亚马逊产品页面'));
if(prodLinks.length){
var iframeSrc=prodLinks[0]。href;
$(“正文”)。附加(“”);
$(“#gmIframe”).css({
“位置”:“绝对”,
“底部”:“1em”,
“左”:“2米”,
“高度”:“30%”,
“宽度”:“94%”,
“z指数”:“17”,
“背景”:“00FF00”
} );
}
警告: 仅当至少满足以下条件之一时,此操作才起作用:
- iframe是同一个域
- iframed网站并不禁止跨源框架。(www.amazon.co.uk确实禁止这种框架。)
- 您使用的浏览器不符合跨原点限制。Firefox尊重它,我不知道Fluid是否尊重它
$(“body”)。append(“”);
.1.这是否意味着JQuery正在工作?2.也许第5行存在问题,导致它无法检索到正确的URL?您可以通过在第5行之后添加alert(iframeSrc)
看到它获取了正确的URL。如果删除id=“gmIframe”,您的iframe将无法正确定位
。是的,某些浏览器会阻止从https页面到http的帧。错误控制台显示了什么?您可以尝试添加iframeSrc=iframeSrc.replace(/http:\/\/,“https://”)是的,你可以这样做,但这是一个单独的问题。你基本上可以使用jQuery来解析iframe。或者,跳过iframe,使用GM-xmlhttpRequest
来获取页面。所有这些都包含在现有的SO问题中。如果你问一个新问题,请包括一个到amazon页面的链接及其相关的HT片段ML结构。
var prodLinks = $("td.product_description a:contains('View Amazon Product Page')");
if (prodLinks.length) {
var iframeSrc = prodLinks[0].href;
$("body").append ('<iframe id="gmIframe" src="' + iframeSrc + '"></iframe>');
$("#gmIframe").css ( {
"position": "absolute",
"bottom": "1em",
"left": "2em",
"height": "30%",
"width": "94%",
"z-index": "17",
"background": "#00FF00"
} );
}