Witam,
Poszukuję skryptu blokującego automatyczne odświeżanie się strony.
Szukałem w necie, ale nic nie znalazłe. Może ma ktoś coś takiego?
Z góry dzięki.
Pozdrawiam
Witam,
Poszukuję skryptu blokującego automatyczne odświeżanie się strony.
Szukałem w necie, ale nic nie znalazłe. Może ma ktoś coś takiego?
Z góry dzięki.
Pozdrawiam
jak blokujący automatyczne odświeżanie ? znaczy się masz refresh w meta i chcesz przez skrypt go zaniechać czy jak ?
Dokładnie tak...
Ciekawa sprawa...
Napisałem takie coś:
var meta = document.getElementsByTagName('meta');
for (i=meta.length-1; i>=0; i--)
{
if (meta[i].outerHTML.match(/<META http-equiv=refresh/))
{
meta[i].outerHTML='';
break;
}
}
a potem podejście drugie:
var meta = document.getElementsByTagName('meta');
for (i=meta.length-1; i>=0; i--)
{
if (meta[i].outerHTML.match(/<META http-equiv=refresh/))
{
meta[i].parentNode.removeChild(meta[i]);
break;
}
}
To drugie znalałem nawet przez google..
Jednak pomimo braku tagu meta (sprawdziłem) strona nadal się odświeża :/
P.S.
Coś nie teges z autozamykaniem tagów :/
Dodają się na końcu zawsze 2 </code></code>
próbowałem na dokładnie 6 sposobów ale okazuje się że meta refresh ma zaje..duży priorytet :/ nie mam pojęcia poddaję się - może to jest specjalnie nie do ominięcia, nawet próba nadpisania (dodania drugiego refresha) okazuje się niedziałająca, hmmm ...
BTW Marooned co tak od końca pętle sprawdzasz ? :)
for (i=meta.length-1; i>=0; i--)
zamiast
for (i=0; i<meta.length; i++)
;P
ostatni log z placu broni:
function zlikwiduj(){
head = document.getElementsByTagName('head');
mety = document.getElementsByTagName('meta');
for(i = mety.length - 1; i > -1; --i){
if(mety[i].httpEquiv.match(/refresh/i)){
mety[i].contentEditable = true;
mety[i].httpEquiv = '';
mety[i].content = '0; URL=javascript:void(0)';
mety[i].disabled = true;
mety[i].parentNode.removeChild(mety[i]);
}
}
refre = document.createElement('meta');
refre.httpEquiv = 'Refresh';
refre.content = '1; URL=javascript:void(0)';
head[0].appendChild(refre);
}
onload = zlikwiduj;
Piszac jakiekolwiek skrypty musicie pamietac o tym ze mozna je wylaczyc :)
wiec napiszcze najpirw mozliwosc blokowania bez umieszczania skryptow.
p.s. a mozna napisac skrypt co wykrywa czy jest wlaczaony JS i zablokowac dostep do strrony w przypadku wykrycia blokady ?
Adamo napisał(a)
BTW Marooned co tak od końca pętle sprawdzasz ? :)
for (i=meta.length-1; i>=0; i--)
zamiast
for (i=0; i<meta.length; i++)
Bo w pierwszej wersji tylko raz odwołujesz się przez referencję, wywołujesz metodę, zwracasz jej wynik i porównujesz - w wersji drugiej robisz to meta.length razy ...
wwww napisał(a)
p.s. a mozna napisac skrypt co wykrywa czy jest wlaczaony JS i zablokowac dostep do strrony w przypadku wykrycia blokady ?
Możliwe, że znacznik <noscript> tu zadziała - nie testowałem.
Marooned napisał(a)
P.S.
Coś nie teges z autozamykaniem tagów :/
Dodają się na końcu zawsze 2
...skrypt uznaje to <META http-equiv=refresh</code> jako nie zamknięty znacznik i jego koniec określa przy < /code > dlatego właśnie dodaje jeszcze po jednym zamykającym znaczniku, tylko nie wiem jak ten problem rozwiązać, tzn jaka strategię postępowania przyjąć...
//to dziwne, bo skoro uznaje <meta jako start to powinien dodać na koniec </meta> a nie </code>
:| - M
//[plain] to nie wiem skad sie wzielo, a [/code] dodaje bo uznaje [meta jako poczatek tagu i nawias konczacy ten tag znajduje w pierwszym [/code] <-- o tutaj - m.p
//najprosciej wydaje sie zmienic reg:
/<(\/)?([\w]+)([\s=][^>]*)?>/g
na:
/<(\/)?([\w]+)([\s=][^<>]*)?>/g
ale nie sprawdzalem - m.p
wwww napisał(a)
p.s. a mozna napisac skrypt co wykrywa czy jest wlaczaony JS i zablokowac dostep do strrony w przypadku wykrycia blokady ?
nie może być skrypt skoro skrypty są wyłączone, no ale proste, skoro strona ma niedziałać jeśli JS wyłączone to niech JS daje dostęp do strony ...
Po wklejeniu skryptu Marooned'a wyskakuje błąd i strona się w ogÓle nie wczytuje.
Problem można zobaczyć na http://www.narty.jup.pl/wyciagi/bialka/pogoda2.php
Strona onetu otwiera się w inframie po kilku sek. przeładowuję się i jest w całym oknie. Gdy wchodzi się na stronę narmalnie to się nie odświeża. Co to może być i jak to obejść?
eee... przyznam sie ze dokladnie nie wiem o co ci chodzi ale jesli chcesz na swojej stronie wczytac do iframe pogode z onetu i zablokowac to ze strona onetu sama wczytuje sie na pelne okno to raczej zapomnij o tym, nie mozna ingerowac w nie swoje strony, przy probie takiej ingerencji przegladarka wyswietli blad: brak uprawnien...
Nie chcę ingerować w onet, bo się nie da chce zrobić coś z moją stroną w której wczytuje się strona oneta. Może jakoś inaczej ją wstawić?
pobierz do zmiennej zawartosc strony, wytnij co Ci potrzeba i wstaw na swoja stronke a nie baw sie przez jakies iframe
Chodzi o to, że oni to często(co jakieś 2h) aktualizują, więc nie mogę i ja co dwie godziny aktualizować. CO to jest zmienna?
ssnake pisał zapewne o użyciu języka server-side, np. PHP
Napisz, czy masz do tego dostęp.
Marooned napisał(a)
ssnake pisał zapewne o użyciu języka server-side, np. PHP
Napisz, czy masz do tego dostęp.
po adresie jaki podal JUL.PL http://www.narty.jup.pl/wyciagi/bialka/pogoda2.php wywnioskowalem, ze jest mozliwosc z skorzystania z PHP
JUP.PL napisał(a)
[...] CO to jest zmienna?
hmm, dobre pytanie, tu cos o tym wspominaja http://pl.wikipedia.org/wiki/Zmienna_%28informatyka%29 o i tutaj jest cos na przykładzie PHP http://www.php.net/manual/pl/language.variables.php miłej lektury ;)
//ach, umknął mej uwadze ten link - M
Już się dowiedziałem co to jest zmienna, jednak nie o to mi chodziło.
Mam dostęp do wszystkiego(nie mam żadnych ograniczeń), więc mogę zastosować wszystko.
Co radzicie?
JUP.PL napisał(a)
[...]
Mam dostęp do wszystkiego(nie mam żadnych ograniczeń), więc mogę zastosować wszystko.
Co radzicie?
http://4programmers.net/Forum/266908#266908
Dobra, dobra, ale ja nie znam się na tym, może ktoś mi podrzuci gotowy kodzik?
ale co chcesz dokładnie, ten link już nie działa (i ile płacisz :D)
najlepiej jakbyś znalazł jakiś kanał RSS czy cuś, no ale ogólnie patrzysz do źródła i patrzysz między czym a czym jest to czego potrzebujesz, a potem piszesz coś w stylu:
<?php
$zmienna = implode('', file('http://adres.strony.z.ktorej.chcesz.cos.pobrac'));
$przed = 'cos w kodzie występujące przed tym co chcesz pobrać';
$po = 'cos w kodzie występujące po tym co chcesz pobrać';
$zmienna = substr($zmienna, strpos($zmienna, $przed) + strlen($przed));
$zmienna = substr($zmienna, 0, strpos($zmienna, $po));
echo $zmienna; // <- to co chcesz pobrać
?>
możesz też wykorzystać wyrażenia regularne ale do takiej prostej czynności raczej nie polecam bo są trochę "zasobożerne"
w tym kodzie musisz tylko pozmieniać zaznaczone akurat na czerwono fragmenty, taki głupi przykład żeby pobrać liczbę ludzi na czaterii w ten (dziwny) sposób w pierwszym miejscu wstawić 'http://www.czateria.pl' w drugim 'Na CZATerii jest obecnie <b>' a w trzecim '</b> osób'
;P
wynik możesz sobie cache'ować na swoim serwerze i zamiast wywoływać to to wysłać żądanie HEAD lub GET z if-modified sprawdzające czy coś zaktualizowali, albo możesz do tego zaprzęgnąć cron'a jeśli tylko masz dostęp, ale to już inna bajka ...</b>