te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - GM_openInTab (or any other GM_ function) is not defined? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - GM_openInTab (or any other GM_ function) is not defined? - Stack Overflow

programmeradmin3浏览0评论

When my GM script does this:

var curTab = GM_openInTab(url);

it results in a 'GM_openInTab is not defined' JavaScript error in the Browser Console.

I also tried using var curWin = window.open(url); instead of GM_openInTab but it had no affect.

What I'm trying to do with this GM script is: for a given website (domain name), go through a list (array) of URLs on this domain and look for items of interest.

What's wrong with my code or approach?

I'm using Greasemonkey 2.3 with Firefox 33.1.1 and Windows XP 32-bit.

When my GM script does this:

var curTab = GM_openInTab(url);

it results in a 'GM_openInTab is not defined' JavaScript error in the Browser Console.

I also tried using var curWin = window.open(url); instead of GM_openInTab but it had no affect.

What I'm trying to do with this GM script is: for a given website (domain name), go through a list (array) of URLs on this domain and look for items of interest.

What's wrong with my code or approach?

I'm using Greasemonkey 2.3 with Firefox 33.1.1 and Windows XP 32-bit.

Share Improve this question edited Feb 6, 2015 at 19:07 Brock Adams 93.5k23 gold badges240 silver badges304 bronze badges asked Feb 1, 2015 at 22:46 KXNV-89.1FMKXNV-89.1FM 1151 silver badge6 bronze badges 1
  • 4 Have you @grant GM_openInTab ? – tsh Commented Feb 2, 2015 at 2:43
Add a ment  | 

1 Answer 1

Reset to default 16

In order to use any of the GM_ functions, you must set a matching @grant directiveDoc (As of Greasemonkey version 2.0Release notes)

For example:

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_openInTab
// ==/UserScript==

var curTab  = GM_openInTab ("http://pwnthemall./");

Note that this has the side effect of switching Greasemonkey's sandbox back on. See also:

  • Error: Permission denied to access property 'handler'
  • How to access `window` (Target page) objects when @grant values are set?


Tampermonkey emulates most of this behavior as of version 3.9Release notes. But the current version (3.9.202) still attempts to guess appropriate values if @grant is not specified, so you won't necessarily see an error (yet).
Always use @grant anyway, for maximum patibility and to future-proof your code.

发布评论

评论列表(0)

  1. 暂无评论