changeElements

By Ahal89 Last update Feb 24, 2010 — Installed 5,019 times.

Archived Comments (locked)

in
Subscribe to Archived Comments 16 posts, 5 voices



Jesse Andrews Admin

The following is an archive of comments made before threaded discussions was implemented (November 16th, 2008)

 
Ahal89 Script's Author

I don't have those characters on my keyboard so I wouldn't be able to begin testing. Try finding the link you want in the source, and then match the inner html.

 
SteveJ User

I cant get it to work on foreign language sites like pixiv.net?

 
crazian User

wow, thanks, i'm at work now, but i can't wait to say thanks to you, i'll try it when after work.

 
Ahal89 Script's Author

There you go crazian...in case you aren't familiar with regular expressions, something like this should accomplish what you want:

modifyLink ("Add .* as a Friend", "Desired Link Text", "Desired Link Path", 1);

If anyone is confused or has any questions, just let me know.
Cheers

 
crazian User

sweeeeeeet, when will that happen?

 
Ahal89 Script's Author

So if I understand you right, you want to be able to change a certain link which may have a different name depending on who's profile your on? eg. Add [insert name] as a Friend.

In this version here that is not possible, however it isn't hard to implement. I'll be implementing regular expressions soon, so you'll be able to do tons of stuff with the name matching.

 
crazian User

i wanna ask if you can make the "Actual Link Text" in var
for example,
this is something i wanna do,
Alan (Actual Link Text, which is Random)
www.facebook.com/detail.php?id=123456 (this is the person's actual address)
www.facebook.com/addfriend.php?id=123456 (this is the link that can direct add friend on page)

what shall i do with your script to make it work?

 
JoeSimmons Scriptwright

How about I add user script commands then? They can simply click "add change", pick the type, the title, the href, everything.

 
Ahal89 Script's Author

Sounds good. Keep in mind that since this script requires a fair amount of modification to the source from a users perspective, I want to keep it as simple as possible for users less experienced with javascript. So I'll make a "mode selection" method with an additional selection parameter that will call the appropriate modification method.

 
JoeSimmons Scriptwright

Ok I'll make the code I suggested and post the parts you need to change here. I might have separate functions for changing a link through the href, and changing a link through the title.

 
Ahal89 Script's Author

Another good idea, I'm on vacation for the rest of this week, but there are obviously tons of improvements to be made which I will do upon my return.

For the moment, feel free to modify the script to better suit your needs,

Cheers

 
JoeSimmons Scriptwright

Well what if 2 links have the same name?
oh and you can just change XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE to 6. Each snapshot type has a number (1-9)

I know another way to work the script that would interest me more.... if you let us supply a link's href, and supply a new text for it. So it searches for the href and replaces that link's text with our set one.

 
Ahal89 Script's Author

Thanks for the tips, as I guess you could tell I've only just started to dabble in JavaScript recently.

However I think I'll leave the option of using indexOf to the user. Consider a site like Facebook where there are many link titles which contain the word "friends" for example. You may wish to modify the "friends" link, but not the "5 of your friends" link. So if you would rather match substrings, then make the change that Joe suggested. Otherwise enter the text in exactly. What I will do, however, is make the equality case insensitive.

P.S, What I'll do later on (too busy now) is allow you to search using substrings, and give the option of only replacing the substring instead of the entire text.

 
JoeSimmons Scriptwright

Use document.evaluate not document.getElementsByTagName
And you should use if(link[i].innerHTML.indexOf(ExpectedName) !== -1){ not if(link[i].innerHTML==(ExpectedName)){ incase they don't put the EXACT text in.

 
Ahal89 Script's Author

I don't have a list of what sites this will work on for sure, though it seems to work well with wikipedia as well. You'll need to just use trial and error to figure out on what links it will work, and what ones it won't (works on almost all links in Google).

Cross
Presentational HTML allowed.
Use <code> for inline code and <pre> for code blocks. Use &lt; and &gt; for literal < and >.
We help break paragraphs and link your links.
or cancel