QT script调用JS立即执行函数

liuandsky 2019-03-10 08:42:10
问题是这样的,我在QT里读取本地一个JS文件,需要执行并得到结果,但是看了很久这个JS文件都不知道该怎么调用,网上查找得知这个JS文件是个立即执行文件,我尝试了很多方式都不行,所以我在代码里该怎么写呢?
这是我现在写的方式,但是不成功:
QScriptEngine engine;
QScriptValue js = engine.evaluate(contents); //contents为js文件内容
QScriptValue func = engine.globalObject().property("pa");
QString result = func.call(QScriptValue(), args).toString();


下面是JS文件全部内容:
(function() {
function Pa() {
if ( - 1 == G("RAIL_EXPIRATION")) for (var a = 0; 10 > a; a++) H(function() { (new ja).getFingerPrint()
},
20 + 2E3 * Math.pow(a, 2));
else(new ja).getFingerPrint();
H(function() {
r.setInterval(function() { (new ja).getFingerPrint()
},
3E5)
},
3E5)
}
function nb(a) {
this.isTimeout = 0;
var b = this,
c = r.RTCPeerConnection || r.webkitRTCPeerConnection || r.mozRTCPeerConnection;
if ("function" == typeof c) {
try {
var d = new c({
iceServers: []
});
d.createDataChannel("", {
reliable: !1
})
} catch(f) {
if (2 != b.isTimeout) {
b.isTimeout = 1;
a();
return
}
}
var e = !1;
d.onicecandidate = function(c) {
var d = /([0-9]{1,3}(\.[0-9]{1,3}){3})/,
f = [];
"complete" != c.target.iceGatheringState || e || (e = !0, c.target.localDescription.sdp.split("\n").forEach(function(a) { (a = d.exec(a)) && "127.0.0.1" != a[1] && "0.0.0.0" != a[1] && -1 === f.indexOf(a[1]) && f.push(a[1])
}), 2 != b.isTimeout && (b.isTimeout = 1, a({
localAddr: 0 < f.length ? f.sort()[0] : ""
})))
};
d.onaddstream = function(a) {
remoteVideo.src = r.URL.createObjectURL(a.stream)
};
d.createOffer(function(a) {
d.setLocalDescription(a,
function() {},
function() {})
},
function() {},
{})
} else a();
H(function() {
0 == b.isTimeout && (b.isTimeout = 2, a())
},
500)
}
function Qa(a) {
for (var b = "",
c = a.length - 1; 0 <= c; c--) b += a.charAt(c);
return b
}
function ya(a) {
if (!a) return "";
if (ob(a)) return a.replace(/\s/g, ""); - 1 != a.indexOf("://") && (a = a.substr(a.indexOf("://") + 3));
var b = "com net org gov edu mil biz name info mobi pro travel museum int areo post rec".split(" "),
c = a.split(".");
if (1 >= c.length || !isNaN(c[c.length - 1])) return a;
for (a = 0; a < b.length && b[a] != c[c.length - 1];) a++;
if (a != b.length) return "." + c[c.length - 2] + "." + c[c.length - 1];
for (a = 0; a < b.length && b[a] != c[c.length - 2];) a++;
return a == b.length ? c[c.length - 2] + "." + c[c.length - 1] : "." + c[c.length - 3] + "." + c[c.length - 2] + "." + c[c.length - 1]
}
function pb(a) {
var b = a.split(".");
if (4 !== b.length) throw Error("Invalid format -- expecting a.b.c.d");
for (var c = a = 0; c < b.length; ++c) {
var d = parseInt(b[c], 10);
if (Number.isNaN(d) || 0 > d || 255 < d) throw Error("Each octet must be between 0 and 255");
a |= d << 8 * (b.length - c - 1);
a >>>= 0
}
return a
}
function Ra(a) {
return null != /[\\\"<>\.;]/.exec(a) && "undefined" != typeof encodeURIComponent ? encodeURIComponent(a) : a
}
function P(a, b) {
if (Sa) {
var c = b ? "visible": "hidden";
Q && K(a) ? K(a).style.visibility = c: Ta("#" + a, "visibility:" + c)
}
}
function Ta(a, b, c, d) {
if (!n.ie || !n.mac) {
var e = q.getElementsByTagName("head")[0];
e && (c = c && "string" == typeof c ? c: "screen", d && (za = L = null), L && za == c || (d = q.createElement("style"), d.setAttribute("type", "text/css"), d.setAttribute("media", c), L = e.appendChild(d), n.ie && n.win && "undefined" != typeof q.styleSheets && 0 < q.styleSheets.length && (L = q.styleSheets[q.styleSheets.length - 1]), za = c), n.ie && n.win ? L && "object" == typeof L.addRule && L.addRule(a, b) : L && "undefined" != typeof q.createTextNode && L.appendChild(q.createTextNode(a + " {" + b + "}")))
}
}
function ka(a) {
var b = n.pv;
a = a.split(".");
a[0] = parseInt(a[0], 10);
a[1] = parseInt(a[1], 10) || 0;
a[2] = parseInt(a[2], 10) || 0;
return b[0] > a[0] || b[0] == a[0] && b[1] > a[1] || b[0] == a[0] && b[1] == a[1] && b[2] >= a[2] ? !0 : !1
}
function K(a) {
var b = null;
try {
b = q.getElementById(a)
} catch(c) {}
return b
}
function Ua(a) {
var b = K(a);
b && "OBJECT" == b.nodeName && (n.ie && n.win ? (b.style.display = "none",
function d() {
if (4 == b.readyState) {
var e = K(a);
if (e) {
for (var f in e)"function" == typeof e[f] && (e[f] = null);
e.parentNode.removeChild(e)
}
} else H(d, 10)
} ()) : b.parentNode.removeChild(b))
}
function Aa(a, b, c) {
var d, e = K(c);
if (n.wk && 312 > n.wk) return d;
if (e) if ("undefined" == typeof a.id && (a.id = c), n.ie && n.win) {
var f = "",
g;
for (g in a) a[g] != Object.prototype[g] && ("data" == g.toLowerCase() ? b.movie = a[g] : "styleclass" == g.toLowerCase() ? f += ' class\x3d"' + a[g] + '"': "classid" != g.toLowerCase() && (f += " " + g + '\x3d"' + a[g] + '"'));
g = "";
for (var l in b) b[l] != Object.prototype[l] && (g += '\x3cparam name\x3d"' + l + '" value\x3d"' + b[l] + '" /\x3e');
e.outerHTML = '\x3cobject classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + f + "\x3e" + g + "\x3c/object\x3e";
la[la.length] = a.id;
d = K(a.id)
} else {
l = q.createElement("object");
l.setAttribute("type", "application/x-shockwave-flash");
for (var k in a) a[k] != Object.prototype[k] && ("styleclass" == k.toLowerCase() ? l.setAttribute("class", a[k]) : "classid" != k.toLowerCase() && l.setAttribute(k, a[k]));
for (f in b) b[f] != Object.prototype[f] && "movie" != f.toLowerCase() && (a = l, g = f, k = b[f], c = q.createElement("param"), c.setAttribute("name", g), c.setAttribute("value", k), a.appendChild(c));
e.parentNode.replaceChild(l, e);
d = l
}
return d
}
function Ba(a) {
var b = q.createElement("div");
if (n.win && n.ie) b.innerHTML = a.innerHTML;
else if (a = a.getElementsByTagName("object")[0]) if (a = a.childNodes) for (var c = a.length,
d = 0; d < c; d++) 1 == a[d].nodeType && "PARAM" == a[d].nodeName || 8 == a[d].nodeType || b.appendChild(a[d].cloneNode(!0));
return b
}
function qb(a) {
if (n.ie && n.win && 4 != a.readyState) {
var b = q.createElement("div");
a.parentNode.insertBefore(b, a);
b.parentNode.replaceChild(Ba(a), b);
a.style.display = "none"; (function d() {
4 == a.readyState ? a.parentNode.removeChild(a) : H(d, 10)
})()
} else a.parentNode.replaceChild(Ba(a), a)
}
function Ca(a, b, c, d) {
ma = !0;
Da = d || null;
Va = {
id: c,
success: !1
};
var e = K(c);
if (e) {
"OBJECT" == e.nodeName ? (Z = Ba(e), na = null) : (Z = e, na = c);
a.id = "SWFObjectExprInst";
if ("undefined" == typeof a.width || !/%$/.test(a.width) && 310 > parseInt(a.width, 10)) a.width = "310";
if ("undefined" == typeof a.height || !/%$/.test(a.height) && 137 > parseInt(a.height, 10)) a.height = "137";
q.title = q.title.slice(0, 47) + " - Flash Player Installation";
d = n.ie && n.win ? "ActiveX": "PlugIn";
d = "MMredirectURL\x3d" + J.location.toString().replace(/&/g, "%26") + "\x26MMplayerType\x3d" + d + "\x26MMdoctitle\x3d" + q.title;
b.flashvars = "undefined" != typeof b.flashvars ? b.flashvars + ("\x26" + d) : d;
n.ie && n.win && 4 != e.readyState && (d = q.createElement("div"), c += "SWFObjectNew", d.setAttribute("id", c), e.parentNode.insertBefore(d, e), e.style.display = "none",
function g() {
4 == e.readyState ? e.parentNode.removeChild(e) : H(g, 10)
} ());
Aa(a, b, c)
}
}
function Ea() {
return ! ma && ka("6.0.65") && (n.win || n.mac) && !(n.wk && 312 > n.wk)
}
function Fa(a) {
var b = null; (a = K(a)) && "OBJECT" == a.nodeName && ("undefined" != typeof a.SetVariable ? b = a: (a = a.getElementsByTagName("object")[0]) && (b = a));
return b
}
function Ga() {
var a = M.length;
if (0 < a) for (var b = 0; b < a; b++) {
var c = M[b].id,
d = M[b].callbackFn,
e = {
success: !1,
id: c
};
if (0 < n.pv[0]) {
var f = K(c);
if (f) if (!ka(M[b].swfVersion) || n.wk && 312 > n.wk) if (M[b].expressInstall && Ea()) {
e = {};
e.data = M[b].expressInstall;
e.width = f.getAttribute("width") || "0";
e.height = f.getAttribute("height") || "0";
f.getAttribute("class") && (e.styleclass = f.getAttribute("class"));
f.getAttrib
...全文
357 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dext 2019-03-11
  • 打赏
  • 举报
回复
这个几乎不会成功 因为有很多的函数 是只存在于 浏览器的 比如那些 DOM 操作

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧