qqqian
小狐狸
小狐狸
  • UID22770
  • 注册日期2008-01-28
  • 最后登录2010-08-08
  • 发帖数32
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:2336回复:6

Pagerization脚本在3.6下失效!!!

楼主#
更多 发布于:2010-01-28 17:39
在3.5.7下正常,3.6就失效了,不能正确获取下一页链接地址。

找不到解决方法。高手请调试一下。

安装回3.5.7就正常了。
qqqian
小狐狸
小狐狸
  • UID22770
  • 注册日期2008-01-28
  • 最后登录2010-08-08
  • 发帖数32
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2010-01-28 17:39
还是没人能解决这个问题吗?
qqqian
小狐狸
小狐狸
  • UID22770
  • 注册日期2008-01-28
  • 最后登录2010-08-08
  • 发帖数32
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2010-01-28 17:39
楼上,你这个函数是自己修改的吗?在3.6上有没有效?
bcyj
小狐狸
小狐狸
  • UID24260
  • 注册日期2008-05-23
  • 最后登录2011-03-27
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2010-01-28 17:39
function $X (exp, context, type ) {
if (arguments.callee.forceRelative) {
exp = exp.replace(/id\((?:"([^"]+)"|'([^']+)')\)/g, function (_, v1, v2) {
return '//*[@id="' + (v1 || v2) + '"]';
});
}
if (arguments.callee.forceRelative) {
if (exp.indexOf("(//") == 0)
exp = "(.//" + exp.substring(3);
else
exp = ((exp[0] == "/") ? "." : "./") + exp;
}
log("xpath:" + exp);

if (typeof context == "function") {
type    = context;
context = null;
}
if (!context) context = document;
var exp = (context.ownerDocument || context).createExpression(exp, function (prefix) {
return document.createNSResolver((context.ownerDocument == null ? context
                                                               : context.ownerDocument).documentElement)
              .lookupNamespaceURI(prefix) || document.documentElement.namespaceURI;
});

switch (type) {
case String:
return exp.evaluate(
context,
XPathResult.STRING_TYPE,
null
).stringValue;
case Number:
return exp.evaluate(
context,
XPathResult.NUMBER_TYPE,
null
).numberValue;
case Boolean:
return exp.evaluate(
context,
XPathResult.BOOLEAN_TYPE,
null
).booleanValue;
case Array:
var result = exp.evaluate(
context,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
var ret = [];
for (var i = 0, len = result.snapshotLength; i < len; ret.push(result.snapshotItem(i++)));
return ret;
case undefined:
var result = exp.evaluate(context, XPathResult.ANY_TYPE, null);
switch (result.resultType) {
case XPathResult.STRING_TYPE : return result.stringValue;
case XPathResult.NUMBER_TYPE : return result.numberValue;
case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: {
// not ensure the order.
var ret = [];
var i = null;
while (i = result.iterateNext()) {
ret.push(i);
}
return ret;
}
}
return null;
default:
throw(TypeError("$X: specified type is not valid type."));
}
}
benny2
小狐狸
小狐狸
  • UID10800
  • 注册日期2005-12-26
  • 最后登录2020-09-03
  • 发帖数93
  • 经验44枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
4楼#
发布于:2010-01-28 17:39
也可以试试用autopagerize这个脚本
http://userscripts.org/scripts/show/8551
qqqian
小狐狸
小狐狸
  • UID22770
  • 注册日期2008-01-28
  • 最后登录2010-08-08
  • 发帖数32
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-01-28 17:39
我找到错误是出现在这个函数里:

function $X(exp, context, type) {

但是不知道怎么改。郁闷。。。官网也没更新。。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-04-28
  • 发帖数18492
  • 经验4848枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
6楼#
发布于:2010-01-28 17:39
可能有些函数在3.6中有所改变,如果没有人知道如何修改,那就只能用 autopager扩展了
Firefox More than meets your experience
游客

返回顶部