如何使用 Javascript 从添加到 iGoogle 网站的小工具中获取唯一的 Google 小工具 ID?
gljivar
问问题
933 次
2 回答
4
如果您尝试从小工具本身的 JavaScript 访问小工具的 ID,您可以使用__MODULE_ID__
. 这会被 iGoogle 服务器自动替换为实际的模块 ID,并在许多标准库中用作公共构造函数参数(请参阅小工具 API 参考)。
如果您正在使用新的小工具 API(OpenSocial 规范的一部分,目前仅在 iGoogle 沙盒中的 iGoogle 上可用),那么您还有另一种选择:gadgets.Prefs.getModuleId()
于 2009-01-17T21:05:02.723 回答
2
我不是 100% 确定您的意思,但 Google 小工具的 URL 似乎是这样的: http: //hosting.gmodules.com/ig/gadgets/file/unique_id/name.xml ...,在 Google 处理完他们的 JavaScript 之后,他们将添加一个带有 onclick 属性的 <a>-tag,其中包含这个 URL。因此,也许您可以尝试从页面中获取所有 <a>-tags(使用 delbox 类),并在 onclick 属性上使用正则表达式来获取唯一 ID。您只需要确保您的代码在 Google 之后执行。
像这样的东西可以工作(未经测试):
/**
* Grabs the id of a Google Gadget from an iGoogle page.
*
* @param name the name of the targeted Google Gadget. If omitted the first
* Gadget is used
* @return the id of the targeted Google Gadget or null if it could not be found
*/
function grab_id (name) {
var links = document.getElementsByClass("delbox");
var url = "http://hosting.gmodules.com/ig/gadgets/file/";
var id_length = 21;
var regex = url + "[\d]{" id_length} + "}/" + name;
for (var i = 0; i < links.length; i++) {
var match = links[i].getAttribute("onclick").match(regex);
if (match) {
return match.substring(url.length+1, url.length+1+id_length);
}
}
return null;
}
于 2008-12-23T13:45:13.257 回答