ďťż
Podstrony
|
telcocafeWitam! Jesli chodzi o skrypty to jestem poczatkujacy, jeszcze niedawno nie zanlem nawet HTML'a ale robie duze postepy dlatego prosze o wyrozumialosc.Ale do rzeczy: Potrzebuje zrobic skrypt koniecznie w JS !!! ktory pobierze zrodlo strony(wraz ze znacznikami) i skopiuje jego fragment do schowka systemowego. stworzylem cos takiego: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Pobieracz</title> <script> var str = 'abcdefghijklmnopres'; var str2 = str.substring(4, 10); // wycina fragment stringu (alfabetu) ale jak zrobic aby wycinalo fragment zrodla strony ?? var ObiektXMLHttp = false; if (window.XMLHttpRequest) { ObiektXMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } function getMsg(src, content) { if(ObiektXMLHttp) { ObiektXMLHttp.open("GET", src); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == 4) { document.getElementById(content).innerHTML = ObiektXMLHttp.responseText; } } ObiektXMLHttp.send(null); } } function ClipBoard() { holdtext.innerText = copytext.innerText; Copied = holdtext.createTextRange(); Copied.execCommand("Copy"); } </script> </head> <body> <center> <div id="a1"></div> <a href="#" onclick="getMsg('http://www.gazeta.pl', 'copytext')">pobierz zrodlo strony</a> <br><br> <SPAN ID="copytext" STYLE="height:150;width:162;background-color:darkorange"> Tu wkleji sie zrodlo po nacisnieciu linku </SPAN> <br><br> <TEXTAREA ID="holdtext" rows="10" cols="60"> moze tutaj da sie pobrac zrodlo ze znacznikami ??? </TEXTAREA> <br><br> <BUTTON onclick="ClipBoard();">kopiuj do schowka</BUTTON> </center> </body> </html> i teraz tak: 1. funkcja kopiowanie do schowka dziala:) wiec to jest OK 2. Wyswietla mi tylko tekstowa zawartosc strony (czyli ta widoczna na stronie) a ja chce aby bylo to kompletne zrodlo ( wraz ze znacznikami ) i tu moje pytanie: Jak zrobic aby mozna bylo pozniej skopiowac do schowka kompletne zrodlo ????? a nie tylko czesc widoczna jak to skrypt robi teraz. 3. Na wycinanie fragmentu mam pomysl taki : wrzucenie zrodla do stringu i wyciecie fragmentu stringu - czy pomysl dobry i czy realny nie wiem, dlatego pytam czy tak sie da??? a jesli nie to jak wyciac fragmrnt zrodla??? prosze nie odsylac mnie do dr google bo juz sporo czau mu poswiecilem ale rozwiazania tego problemu nie znalazlem, dotarlem tylko do : http://www.java2s.co...tURLContent.htm http://www.java2s.co...GetURLParts.htm http://www.java2s.co...eadfromaURL.htm http://www.java2s.co...ocol/URLGet.htm http://www.java2s.co...partsofaurl.htm Ale zastanawiam sie czy to nie sa skrytpt JAVA a nie javascript... ale biorac pod uwage moje doswiadczenie to nawet nie umiem uruchomic tych skryptow:( wiec bylbym wdzieczny za pomoc w : 1 Jak pobrac zrodlo ze znacznikami?? 2. jak pozniej z niego wyciac fragment?? 3. ew jak uruchomic skrypty z linkow?? Z gory dzieki za pomoc na jakiekolwiek z pytan Wygląda na to, że kod HTML się wykonuje. Zatem musisz zamienić < i > na encje. Być może istnieją lepsze sposoby, ale skorzystaj z fragmentu, który wykorzystuję przy dynamicznym podglądzie BBCode:text = text.replace(/&/g, '&'); text = text.replace(/</g, '<'); text = text.replace(/>/g, '>');Za zmienną text możesz podstawić ObiektXMLHttp.responseText Kod wykonujesz już po pobraniu kodu, ale zanim go wkleisz w odpowiednie miejsce. Sprawdź, czy kopiowanie do schowka działa w innej przeglądarce niż IE. Juz rozumiem Twoj pomysl, zmienic znaczniki tak zeby przegladarka mogla je wyswietlic :) GENIALNE! z tej strony nie patrzylem. A mozesz mi jeszcze powiedziec w ktorym miejscu to dokladnie wklejic ??? testuje wszedzie w sekcji SCRIPT ale jakos mi dzialac nie chce, wklejam cos takiego ObiektXMLHttp.responseText = text.replace(/&/g, '&'); ObiektXMLHttp.responseText = text.replace(/</g, '<'); ObiektXMLHttp.responseText = text.replace(/>/g, '>'); ale dalej mi pokazuje tylko tresc strony, gdzie to wklejic ???? Jak mi pomozesz zmienic te znaczniki na encje i powiesz jak z tego wyciac fragment?? np od 5 linijki zrodla do 40 linijki i to bedzie dzialac to poprosze o Twoj nr konta i wysylam Ci rownowartosc flaszki :D Znajdź linię, w której wstawiasz kod do obiektu <span>. Wstaw przed nią:ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>');Jeśli chcesz zaoszczędzić miejsca, spróbuj:var text = ObiektXMLHttp.responseText; text = text.replace(/&/g, '&'); text = text.replace(/</g, '<'); text = text.replace(/>/g, '>'); //Natomiast zastąp linię wklejającą kod document.getElementById(content).innerHTML = text;Mam nadzieję, że rozumiesz ideę. Jeżeli sam pisałeś skrypt, poradzisz sobie w 3 minuty. Dam ci kod na cięcie linii://Wykrywamy znak końca linii - pomijam \r, ale możesz rozszerzyć kod var NL = text.indexOf('\r\n')==-1) ? '\n' : '\r\n'; //Dzielimy - to może potrwać var lines = text.split(NL); //Maksymalna linia var max = Math.min(lines.length, 40); //Tablica, do której zapiszemy interesujące nas linie var nowe = []; //Zaczynamy na 5 (4) i kończymy na max (max-1) for(var i=0; i<max; i++) { nowe.push(lines[i]); } //Teraz masz, co chcesz text = nowe.join(NL); Użytkownik Ferrari edytował ten post 21 luty 2010, 00:16 Wykorzystalem znalezioną funkcje getMsg, cala reszte napisalem sam. Dziwne juz sam zglupialem : jesli wkleję ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>'); przed linię : document.getElementById(content).innerHTML = ObiektXMLHttp.responseText; to wtedy skrypt mi nie dziala( po kliknieciu w link nic sie nie wykonuje). A jesli wkleje gdziekolwiek po tej linii to pozostaje tak jak mialem poczatkowo (czyli wyswietla tresc bez znacznikow) Moj kod wyglada teraz tak: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Pobieracz</title> <script> var ObiektXMLHttp = false; if (window.XMLHttpRequest) { ObiektXMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } function getMsg(src, content) { if(ObiektXMLHttp) { ObiektXMLHttp.open("GET", src); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == 4) { document.getElementById(content).innerHTML = ObiektXMLHttp.responseText; ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>'); } } ObiektXMLHttp.send(null); } } function ClipBoard() { holdtext.innerText = copytext.innerText; Copied = holdtext.createTextRange(); Copied.execCommand("Copy"); } ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>'); </script> </head> <body> <center> <script> ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>'); </script> <a href="#" onclick="getMsg('http://www.gazeta.pl', 'copytext')">pobierz zrodlo strony</a> <script> ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/&/g, '&'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/</g, '<'); ObiektXMLHttp.responseText = ObiektXMLHttp.responseText.replace(/>/g, '>'); </script> <SPAN ID="copytext" STYLE="height:150;width:162;background-color:darkorange"> Tu wkleji sie zrodlo po nacisnieciu linku </SPAN> <br><br> <BUTTON onclick="ClipBoard();">kopiuj do schowka</BUTTON> </div> </center> </body> </html> Przepraszam za taki balagan (chcialem pokazac, ze nigdzie ponizej ta zamiana nie daje efektow u mnie) ale wyswietla się dalej tylko tresc (bez znacznikow). Jak wkleje powyzej to nie wyswietla wtedy nic. Ggdzies mam blad ale o tej porze nie potrafie juz znalezc. Do testowania tego uzywam Internet Explorera może to ma znaczenie?? U Ciebie na jakiej przeglądarce to zadziałało??? Użytkownik marekxczarny edytował ten post 21 luty 2010, 02:48 |
|||
Sitedesign by AltusUmbrae. |