Php Greasemonkey脚本,用于将javascript变量与另一个页面进行比较';什么内容?
Greasemonkey脚本是否可以将以下脚本的Php Greasemonkey脚本,用于将javascript变量与另一个页面进行比较';什么内容?,php,javascript,compare,greasemonkey,Php,Javascript,Compare,Greasemonkey,Greasemonkey脚本是否可以将以下脚本的Name变量与其他站点的成员列表进行比较,并在Name与任何人不匹配时使其运行脚本的其他部分 //alert(Name); var postHistory = "http://"+regionSlice+".targetforum.com/board/search.php?do=process&searchuser="+Name+"&exactname=1&showposts=1"; var avatar = "http:
Name
变量与其他站点的成员列表进行比较,并在Name
与任何人不匹配时使其运行脚本的其他部分
//alert(Name);
var postHistory = "http://"+regionSlice+".targetforum.com/board/search.php?do=process&searchuser="+Name+"&exactname=1&showposts=1";
var avatar = "http://othersite.com/forum/avatar/" +regionSlice+ "." + Name + ".png"; // creates an avatar
// Replace the old Avatar
$('.user_icon', this).attr('src', avatar);
$('.user_icon', this).wrap('<a href="' + postHistory + '" class="link"></a>');
$('.user_icon', this).attr('width', '80');
$('.user_icon', this).attr('height', '80');
$('.user_icon', this).attr('style', 'position:relative; TOP:7px');
othersite.com/forum/members.php上的成员列表:
<?php
$con = mysql_connect("host","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$result = mysql_query("SELECT username FROM users ORDER BY ID");
echo "<table border='0'>
<tr>
<th>UserName</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
使用以下代码获取名称:
// Replace everypost's avatar
$('.forum_post').each(function(index) {
name = $('big', this).html();
//alert($('big', this).html());
var Name1 = name.replace("\<font ", "");
var Name2 = Name1.replace("color\=\"\#c98f1a\"\>", "");
var Name3 = Name2.replace("color=\"green\"\>", "");
var Name4 = Name3.replace("color=\"red\"\>", "");
var Name = Name4.replace("</font>", "");
//替换everypost的头像
$('.forum_post')。每个(功能(索引){
name=$('big',this.html();
//警报($('big',this.html());
var Name1=name.replace(“\”,“”);
var Name3=Name2.replace(“color=\“green\”\>,”);
var Name4=Name3.replace(“颜色=\”红色\“\>”,“”);
var Name=Name4.replace(“,”);
是的,您可以将名称
与从另一个网页上刮取的内容进行比较。因为它看起来是跨域的,所以您必须使用
从members.php的外观来看,它返回如下表:
用户名
用户A
用户B
用户C
用户D
没有别的。(如果它返回其他内容,则需要调整以下代码中的选择器。)
我做了 如果安装此Greasemonkey脚本,您可以看到它读取用户名:
// ==UserScript==
// @name _Parse simple AJAX page scrape/fetch
// @include http://stackoverflow.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_xmlhttpRequest
// ==/UserScript==
GM_xmlhttpRequest ( {
method: 'GET',
url: 'http://fiddle.jshell.net/TDcDV/show/',
onload: getUsernamesFromAjax
} );
function getUsernamesFromAjax (respObject) {
var respDoc = $(respObject.responseText);
var userNameTDs = respDoc.find ("td");
var userNames = userNameTDs.map ( function () {
return this.textContent;
} ).get ();
alert ("The usernames are: " + userNames);
}
(警报,“
用户名为:用户A、用户B、用户C、用户D
”)
现在,关于将
Name
与数据进行比较,问题还不清楚
名称
值?如果有,哪个。用户图标
节点与哪个名称
相关更新:
根据新信息,以下是您希望脚本执行的操作:
(AJAX可能需要几秒钟的时间。)
这是一个完整的脚本,可以做到这一点。
安装脚本,然后访问,查看其运行情况。
// ==UserScript==
// @name _Replace avatars for matching names
// @include http://jsbin.com/awaxap/*
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @resource waitImg http://i.cdn.turner.com/money/.element/img/1.0/misc/throbber.gif
// @grant GM_xmlhttpRequest
// @grant GM_getResourceURL
// ==/UserScript==
//--- Replace avatars with an "In progress" image.
var waitImgSrc = GM_getResourceURL ("waitImg");
$("div.forum_post div.avatar img.user_icon").attr ('src', waitImgSrc);
//--- Fetch the member list.
GM_xmlhttpRequest ( {
method: 'GET',
url: 'http://fiddle.jshell.net/TDcDV/show/',
onload: changeUserIconsOfMembers
} );
//--- Replace avatars based on name match.
function changeUserIconsOfMembers (respObject) {
var respDoc = $(respObject.responseText);
var userNameTDs = respDoc.find ("td");
var userNames = userNameTDs.map ( function () {
return $.trim (this.textContent.toLowerCase () );
} ).get ();
//--- Replace every post's avatar.
$('div.forum_post').each ( function (index) {
//-- text() automatically strips out any <font> cruft, if present.
var Name = $('div.avatar big', this). text ();
//-- Standardize name for comparison.
Name = $.trim (Name).toLowerCase ();
var regionSlice = ""; // where's this come from?
var postHistory = "http://" + regionSlice
+ ".targetforum.com/board/search.php?do=process&searchuser="
+ Name + "&exactname=1&showposts=1"
;
var avatar = "http://othersite.com/forum/avatar/" + regionSlice
+ "." + Name + ".png"
; // creates an avatar
avatar = "http://i.stack.imgur.com/Nrzn7.jpg"; // Temp avatar upgrade. ;)
//--- Was the username not found?
if (userNames.indexOf (Name) === -1 ) {
avatar = "http://other.com/forum/avatar/questionmark.png";
avatar = "http://i.stack.imgur.com/BbOsC.gif"; // Temp avatar upgrade. ;)
}
//--- Replace the old Avatar and give it a link to history.
var userIcon = $('div.avatar img.user_icon', this);
userIcon.attr ( {
src: avatar,
width: '80',
height: '80',
style: 'position:relative; TOP:7px;'
} );
userIcon.wrap ('<a href="' + postHistory + '" class="link"></a>');
} );
}
/==UserScript==
//@name\u替换匹配名称的化身
//@包括http://jsbin.com/awaxap/*
//@包括http://YOUR_SERVER.COM/YOUR_PATH/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
//@resource waitImghttp://i.cdn.turner.com/money/.element/img/1.0/misc/throbber.gif
//@grant GM_xmlhttpRequest
//@grant GM_getResourceURL
//==/UserScript==
//---将化身替换为“正在进行”的图像。
var waitImgSrc=GM_getResourceURL(“waitImg”);
$(“div.forum\u post div.avatar img.user\u icon”).attr('src',waitImgSrc);
//---获取成员列表。
GMxmlHttpRequest({
方法:“GET”,
网址:'http://fiddle.jshell.net/TDcDV/show/',
onload:changeUserIconsOfMembers
} );
//---根据名称匹配替换化身。
函数changeUserIconsOfMembers(respObject){
var respDoc=$(respObject.responseText);
var userNameTDs=respDoc.find(“td”);
var userNames=userNameTDs.map(函数(){
返回$.trim(this.textContent.toLowerCase());
}).get();
//---替换每个帖子的头像。
$('div.forum_post')。每个(功能(索引){
//--text()会自动去除任何积垢(如果存在)。
var Name=$('div.avatar big',this).text();
//--标准化用于比较的名称。
Name=$.trim(Name.toLowerCase();
var regionSlice=“;//这是从哪里来的?
var postHistory=“http://”+区域片
+“.targetforum.com/board/search.php?do=process&searchuser=”
+名称+“&exactname=1&showposts=1”
;
var avatar=”http://othersite.com/forum/avatar/“+地区许可证
+“+Name+”.png”
;//创建一个化身
阿凡达=”http://i.stack.imgur.com/Nrzn7.jpg“;//临时化身升级。”
//---找不到用户名吗?
if(userNames.indexOf(Name)=-1){
阿凡达=”http://other.com/forum/avatar/questionmark.png";
阿凡达=”http://i.stack.imgur.com/BbOsC.gif“;//临时化身升级。”
}
//---替换旧的头像并给它一个历史链接。
var userIcon=$('div.avatar img.user_icon',此图标);
userIcon.attr({
src:avatar,
宽度:'80',
高度:'80',
样式:“位置:相对;顶部:7px;”
} );
userIcon.wrap(“”);
} );
}
注意:找不到用户“Vortexer”,但找到了用户“B”。是的,您可以将
名称
与从另一个网页上抓取的内容进行比较。因为它看起来是跨域的,所以您必须使用它来执行此操作
从members.php的外观来看,它返回如下表:
用户名
用户A
用户B
用户C
用户D
没有别的。(如果它返回其他内容,则需要调整以下代码中的选择器。)
我做了 如果安装此Greasemonkey脚本,您可以看到它读取用户名:
// ==UserScript==
// @name _Parse simple AJAX page scrape/fetch
// @include http://stackoverflow.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_xmlhttpRequest
// ==/UserScript==
GM_xmlhttpRequest ( {
method: 'GET',
url: 'http://fiddle.jshell.net/TDcDV/show/',
onload: getUsernamesFromAjax
} );
function getUsernamesFromAjax (respObject) {
var respDoc = $(respObject.responseText);
var userNameTDs = respDoc.find ("td");
var userNames = userNameTDs.map ( function () {
return this.textContent;
} ).get ();
alert ("The usernames are: " + userNames);
}
(警报,“
用户名为:用户A、用户B、用户C、用户D
”)
现在,关于将
Name
与数据进行比较,问题还不清楚
名称
值?如果有,请选择哪个.user\i
// ==UserScript==
// @name _Replace avatars for matching names
// @include http://jsbin.com/awaxap/*
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @resource waitImg http://i.cdn.turner.com/money/.element/img/1.0/misc/throbber.gif
// @grant GM_xmlhttpRequest
// @grant GM_getResourceURL
// ==/UserScript==
//--- Replace avatars with an "In progress" image.
var waitImgSrc = GM_getResourceURL ("waitImg");
$("div.forum_post div.avatar img.user_icon").attr ('src', waitImgSrc);
//--- Fetch the member list.
GM_xmlhttpRequest ( {
method: 'GET',
url: 'http://fiddle.jshell.net/TDcDV/show/',
onload: changeUserIconsOfMembers
} );
//--- Replace avatars based on name match.
function changeUserIconsOfMembers (respObject) {
var respDoc = $(respObject.responseText);
var userNameTDs = respDoc.find ("td");
var userNames = userNameTDs.map ( function () {
return $.trim (this.textContent.toLowerCase () );
} ).get ();
//--- Replace every post's avatar.
$('div.forum_post').each ( function (index) {
//-- text() automatically strips out any <font> cruft, if present.
var Name = $('div.avatar big', this). text ();
//-- Standardize name for comparison.
Name = $.trim (Name).toLowerCase ();
var regionSlice = ""; // where's this come from?
var postHistory = "http://" + regionSlice
+ ".targetforum.com/board/search.php?do=process&searchuser="
+ Name + "&exactname=1&showposts=1"
;
var avatar = "http://othersite.com/forum/avatar/" + regionSlice
+ "." + Name + ".png"
; // creates an avatar
avatar = "http://i.stack.imgur.com/Nrzn7.jpg"; // Temp avatar upgrade. ;)
//--- Was the username not found?
if (userNames.indexOf (Name) === -1 ) {
avatar = "http://other.com/forum/avatar/questionmark.png";
avatar = "http://i.stack.imgur.com/BbOsC.gif"; // Temp avatar upgrade. ;)
}
//--- Replace the old Avatar and give it a link to history.
var userIcon = $('div.avatar img.user_icon', this);
userIcon.attr ( {
src: avatar,
width: '80',
height: '80',
style: 'position:relative; TOP:7px;'
} );
userIcon.wrap ('<a href="' + postHistory + '" class="link"></a>');
} );
}