Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
20.12.2012 16:59:08
Foxreplace'ga HTML koodi asendades HV foorumis kasutajanimel klikates see tekstikasti ei ilmu |
|
|
Mul oleks hädasti vaja HV siseselt ja väliselt asendada HTML koodi endale meelepäraseks. Põhjuseid on palju, miks see vajalik on ja detailidesse laskuma ei hakkaks.
Kasutan Firefoxi ja netist leidsin sellise lisa nagu Foxreplace 0.13.3 -> https://addons.mozilla.org/en-us/firefox/addon/foxreplace/ , aga kummaline nähtus ilmub, kui kasutan HTML replace. Nimelt kui mul on HTML asendamine sisse lülitatud, siis foorumis kasutajanimel klikates peaks see ilmuma alla tekstikasti, aga seda ei juhtu. Aga kui kasutan selle lisaga ainult URL asendamist, siis see probleem kaob. See ei ole seotud ühegi asendatava sõnega, mis kuidagi kattuks, vaid kui lisan asendatavaks ja asendajaks ükskõik mis lampi sõne, mis ei kattu mitte kuidagi, aga panen linnukese alla "Replace HTML", siis ilmneb probleem.
All on pilt sellest, milliseid asendajaid hetkel kasutan. Teine ja kolmas olid vahepeal katsena, kuna proovisin tekstikastile anda lisaks nimele "message" ka id="message. Aga sellega tuli uus probleem, mida ma ei osanud lahendada ja kuna see oli ammu, siis hetkel ei mäleta täpsemalt. Sai vastavalt muudetud ka emoticon(text) (lähtekoodis). Hetkel pole need aktiveeritud, kuna HTML=no.
Viimane on see, millega katse korras toimetan. HTML koodi asendab kenasti ära ja "LiivaneLord" asendab "Olavi"-ga, aga lingil klikkides ei juhtu mitte midagi.
Spoiler 
Milles võib olla asi?
Ise ma uurisin foorumi lähtekoodi ja leidsin sellise rea:
<input type='submit' name='post' class='mainoption' value='sisesta' tabindex='2'>
Sellel on sama "name", mis natuke eespool:
<form action='posting.php' method='post' name='post' onsubmit='return checkForm(this)'>
Kas on viga selles, et kaks samanimelist elementi on või milles võib olla probleem, et tekstikasti midagi ei ilmu? Samuti ei toimi ükski emotikon ja sisestavat teksti ei saa saata ega kasutada eelvaadet, kuna "eelvaade" ega "sisesta" nupp ei toimi, midagi ei juhtu. Viga peab olema kuidagi sellega seotud vist? Ja milline replace võiks parandada seda viga?
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
21.12.2012 22:25:41
|
|
|
Imo kõik mis sa tegelt vajad on korralik userscript.
Vähemasti see: "foorumis kasutajanimel klikates peaks see ilmuma alla tekstikasti" peaks olema suhteliselt kergesti lahendatav userscriptiga (.js fail mida browser ise mingil kindlal lehel launchib. Too javascript seal saab kenasti kõigele ligi ning sellised actionid on no problem)
Samuti saan aru, et asendad uued nimed inimestel vanadega mis oleks ka suhteliselt lihtsast userscriptiga lahendatav.
Seega minu lahendus probleemile oleks userscripti kirjutamine mitte plugina kasutamine. See eeldab javascripti teadmisi.
Kui ma täna veel aega leian, siis võin ühe produktiivse posti ka teha juba konkreetse userscriptiga, moment pole aega et koodi kirjutama hakata.
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
21.12.2012 23:11:32
|
|
|
Redikate, uurisin jah Greasemonkeyd ja selle võimalusi. Ilgelt lihtne oleks, kui näiteks "LiivaneLord" asendan "Olavi"-ga skriptiga, mis sisaldab:
document.body.innerHTML= document.body.innerHTML.replace(/LiivaneLord/g, "olavi");
Aga ka sellega kaasnevad eelpoolmainitud probleemid. Kasutajanimel klikkimise funktsionaalsuse suutsin ma ise taastada, aga kindlasti ei ole see lahendus, sest foorumis ja ka teistel lehtedel on neid skripte lõpmata hulk ja võimatu oleks kõigi nende jaoks mingi vastupidine lahendus genereerida. Ja foorumisse postitada ka ei saa, kui skript sellel lehel töötab. Ei ole jaksanud sellele lahendust leida, kuna leidsin, et see oleks mõttetu.
Ühesõnaga tahan HTML replace teha selliselt, et kõik lehel sisalduvad javascripti skriptid toimiksid ka siis, kui ma midagi asendan. HV foorum on ses mõttes hea näide, kus katsetada.
Ja teine asi - ma tahaks oma skripte kasutada ainult ühel ja konkreetsel lehel, mitte kõigil. Kuidas seda teha? Include lahtrist ei saa ma aru. Kui ma sinna midagi lisan, siis skript käivitub sellegipoolest kõikidel lehtedel.
viimati muutis LiivaneLord 21.12.2012 23:21:42, muudetud 1 kord |
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
21.12.2012 23:14:03
|
|
|
Kuna teema juba läks userscript peale, siis panen lingi kus sellest veidi juttu on.
userscript
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
22.12.2012 00:17:57
|
|
|
Userscripti saab jooksma panna ainult kindlal lehel. Kasvõi aladomeenil või ainult ühes foorumi topicus.
Ma katsun natukese aja pärast testida ja kirjutada vähe.
_________________ http://nodejs.org/
"I'm also a person. Programming is just one thing I do." |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
22.12.2012 01:16:16
|
|
|
Proovisin veel väheke:
var str=document.body.innerHTML;
var n=str.replace("LiivaneLord", "Olavi");
alert(n);
document.body.innerHTML=n;
Aga javascript ei toimi ikka.
Kuidas saaks muutuja väärtuseks kogu kupatuse koos html ja head tagidega? Aga samas, kui praegusel viisil ei saa, siis ei saa koos kogu sisuga ka vist? Näiteks HV foorumi javascripti funktsioon asub väljaspool head tagi. emoticon() näiteks, mis määrabki, mis juhtub, kui klikin kasutajanimel.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
22.12.2012 01:20:53
|
|
|
Kas sa tahad, et LiivaneLord oleks Olavi aga peale vajutades sisestaks "LiivaneLord" või et peale vajutadeds sisestaks Olavi
_________________ http://nodejs.org/
"I'm also a person. Programming is just one thing I do." |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
22.12.2012 01:45:42
|
|
|
Redikate, tahaks täielikku asendust, et kõik veebilehel muutuks Olaviks, aga kõik muud funktsioonid veebilehel toimiksid. See oleks lihtne näide. Kui seda saavutaks, siis sealt oskaksin ise edasi asja arendada, aga hetkel saan küll asendada, aga javascript ei toimi.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
22.12.2012 03:00:05
|
|
|
Mnjah, niimoodi lambist ei saanudki aru miks JS katki läheb. Kui tead kus vaja asendada on, siis pole iseenesest probleemi (postid, username jms). Aga kui üritada kinnisilmi kogu lehel ära asendada, lähevad asjad katki.
Vast mingipäev leian rohkem aega uurida. Moment ei oska muud soovitada kui lihtsalt pin-pointida täpsed kohad ning seal muuta. jQueryiga suhteliselt lihtne, lihtsalt tüütu tegevus ja nii mõnigi koht võib niimoodi vahele jääda.
Siin ka greasemonkey script siis, see vahetab esialgu nähtava kasutajanime ära, lihtsalt näiteks. jQueryiga saab ka postid läbi käia jms.
http://pastebin.com/nZTMQQ4d
Eks ma annan teada kui mingeid mõtteid tekib veel.
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
22.12.2012 03:24:04
|
|
|
document.documentElement.innerHTML;
See valib kogu lehe koodi, aga see on ka kõik.
var n=str.replace("LiivaneLord", "Olavi");
document.documentElement.innerHTML=n;
Midagi ei muutu sellega.
Eks peab leppima, et tuleb täpsemalt elementide järgi asendama. Põhimõtteliselt sellest peaks ka piisama, kuna seda läheb tarvis piiratud hulgal lehtedel ja nende jaoks loon eraldi skriptid.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
iFlop
Kreisi kasutaja

liitunud: 03.05.2003
|
22.12.2012 14:24:06
|
|
|
LiivaneLord kirjutas: |
tahaks täielikku asendust, et kõik veebilehel muutuks Olaviks, aga kõik muud funktsioonid veebilehel toimiksid. |
Kas saad aru, et põhimõtteliselt tahad võimatut?
Mõni keerukam veebileht võib koosnedagi põhiliselt JS'st. Mõni väike muudatus HTMLis ning võib juhtuda, et JS enam ei töötagi selle tõttu.
Üks näide kus replace("LiivaneLord", "Olavi") vist ei toimi:
http://jsfiddle.net/2wFcX/
|
|
Kommentaarid: 67 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
66 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
22.12.2012 15:55:49
|
|
|
iFlop, hakkan vaikselt aru saama jah. Lihtsalt igaks juhuks tegin teema, et küsida.
Minu eesmärk on HTMLis muudatusi teha täiesti teadlikult. Peamiselt ongi vaja muuta just neid parameetreid, mis veebilehel scriptidele ette söödetakse.
HV foorumis näiteks sööta funktsioonile emoticon('LiivaneLord,') hoopis emoticon('Olavi,'). Siin oleks vajalik, et just see funktsioon toimiks endistviisi, aga lihtsalt uue parameetriga. Selle lahendasin selliselt:
javascript:
|
var tags=document.getElementsByTagName("a"); var n=tags.length; for(x=0;x<n;x++){ if(document.getElementsByTagName("a")[x].innerHTML=='LiivaneLord'){ document.getElementsByTagName('a')[x].innerHTML='Olavi'; } } var tags2=document.getElementsByTagName("a"); var n2=tags2.length; for(x=0;x<n2;x++){ if(document. getElementsByTagName("a")[x ]. href== 'javascript:emoticon(\'[b]LiivaneLord[/b],\')'){ document. getElementsByTagName('a')[x ]. href= 'javascript:emoticon(\'[b]Olavi[/b],\')'; } }
|
Proovin veel asju ...
EDIT: Aga siiski, kuidas neid skripte ainult ühel ja konkreetsel lehel käivitada?
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
22.12.2012 17:19:43
|
|
|
tsitaat: |
EDIT: Aga siiski, kuidas neid skripte ainult ühel ja konkreetsel lehel käivitada? |
Loe minu postis toodud link läbi, seal selgitatakse.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
22.12.2012 18:00:03
|
|
|
andrusny, mh, huvitav. Enne proovisin seda ja siis ei toiminud, aga nüüd toimib.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
|