注解
不用弹出窗口方式,采用了2个iframe,分别是Left,Right。Right中有按钮。Left是数据采集用。
如图:
用到的知识点
插入iframe
动态生成iframe内容
动态生成iframe样式CSS
获取iframe中按钮元素按下事件
获取iframe onload事件
JS 写入本地文件
结论
用iframe方式,采集相同数据的速度比新窗口方式慢几倍。不知道这是不是iframe的缺点之一。
代码
// ==UserScript==
// @name iFrame
// @author 初一他大爷
// @description iFrame test
// @include http*://flights.ctrip.com/schedule/*-*map.html
// @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @version 0.0.1
// @grant none
// ==/UserScript==
var finalData;
var frameLeft=0;
var frameRight=0;
var idLeft = "frameL";
var idRight = "frameR";
var idBtn = "myBtn";
//change iframe height
function resizeFrame(){
var itemWidth = ~~(document.documentElement.clientWidth*(9/10));
frameLeft.width = itemWidth;
frameRight.width =document.documentElement.clientWidth - itemWidth - 8;
}
//get iframe parent URL
function getParentUrl() {
var url = null;
try {
url = parent.location.href;
} catch (e) {
url = document.referrer;
}
return url;
}
//Resize
window.onresize = function(){
resizeFrame();
}
//main
window.onload=function(){
//Insert iframe
var firstChild = document.body.firstChild;
var frameL = document.createElement('iframe');
frameL.setAttribute('id',