Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Problem med html/js

wimpey
wimpey

Gradering

#19408

Hej,

Någon som vet hur man öppnar ett id via en länk samtidigt som man byter sida?

<a href="sidan.htm" onclick="change('id');">länk</a>

Det jag vill göra är att först komma till sidan.htm och sen öppna id:t, med ett klick. Dvs, id:t öppnar sig själv efter sidan laddats.

Är detta möjligt?

http://www.lilypad.se
Redigerades av wimpey den 12 februari 2010. Läs tidigare inlägg.
ID: #19408 | Skapades: 2010-02-12 09:46:45 | Tråden har 12 svar och har lästs 331 gånger.

voigtan
voigtan

Gradering

#19410

Lycka till med det, om du inte löser det med ajax så kommer du aldrig att kunna triggar ett event i efterhand, jag skulle nog säga att du försöker lösa problemet på fel håll. Sätt en Querystring, länkar till en annan sida som ha eventet i onload:en istället.

 

redigerad:

Om du måste vara beroende av javascript för att se innehållet så kan du lika väl bara ha element gömda som du visas när du ha eventet onclick

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 12 februari 2010. Läs tidigare inlägg.
ID: #19410 | Skapades: 2010-02-12 10:50:49

wimpey
wimpey

Gradering

#19411

Det är så jag gjort.

Jag kan visa ex., jag vill att när man klickat på ett av jobben jag gjort på www.lilypad.se/blog så ska man komma till www.lilypad.se och jobbet ska öppnas där.

http://www.lilypad.se
ID: #19411 | Skapades: 2010-02-12 11:13:59

voigtan
voigtan

Gradering

#19412

http://dinsida.se är alltid dinsida.se, den kan inte vara något annat, så nej det går inte, sen finns det alltid walkarounds för det men jag ser detta som:

Varför skall du ha det som javascript när du ändå ha innehållet på en fysisk sida? Känns extremt korkat, om det är animationer eller liknande, fadar in den alltid vid första besöket då istället.

Vad är det du vill uppnå och varför?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19412 | Skapades: 2010-02-12 11:18:35

wimpey
wimpey

Gradering

#19413

Jag har javascript för alla animationer och funktionerna. Om du klickar på tex tools eller show info så är det också en del av javascriptet.

Det jag vill uppnå är att man ska vara kapabel till att se jobben jag gjort även fast man är på min blogg utan att behöva gå tillbaka till huvudsidan medvetet.

http://www.lilypad.se
ID: #19413 | Skapades: 2010-02-12 11:26:51

voigtan
voigtan

Gradering

#19414

Om du bygger din meny med javascript, vilket du gör så få du lösa det med javascript, för det är rätt tydligt att du ignorera alla som vill öppna dina projekt en en annan tabb på en modern webbläsare, Du få helt enkelt inkludera dina divar på varje sida inklusive din bloggsida, eller gör ett AJAX anrop, vilket jag är tveksam på att du kan göra eftersom det är en subdomän du jobbar från och kan vara en säkerhetsspärr där.

Din struktur på sidan idag föjer inte någon direkt standard, på din startsida så kan jag aldrig komma tillbaka och läsa om dig och att du studera för webbdesign, förtuom om man trycker på "hide work", vilket inte heller stämmer om jag är på "om sidan" så döljer jag inte dina arbeten, sen slutar allt fungera för mig i alla fall.

Om jag hade gjort din sida så hade jag gjort varje utan javascript så man faktist kan besöka den, sen skriver du över trigger onclick och hämta sidan med ajax, behåll den information du vill prestendera på din innehållswrapper och ersätt den.

Annars är det ända sätt att lösa ditt problem är att du måste inkludera alla dina sidor (eller som divar) på alla dina sidor: /blog visar alltid bloggdiven, men de andra divarna är med => vilket känns som lite onödigt då det bli bara dubletter av samma sida om och om igen.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19414 | Skapades: 2010-02-12 11:40:27

wimpey
wimpey

Gradering

#19415

Det är det som är problemet.

Att göra allting med ajax är en smart lösning, grejen är att jag inte kan ajax.

Tack.

http://www.lilypad.se
ID: #19415 | Skapades: 2010-02-12 11:53:04

voigtan
voigtan

Gradering

#19417

Du kör ju prototype JS, det ända som hade varit enklare är jQuery:

http://www.prototypejs.org/learn/in...duction-to-ajax

response texten borde du kunna formatera ut allt som är mellan <body> taggen och ersätta din befintliga <body> elements innerHTML och vips så är det ajaxifierad:

http://voigt.se/sandbox/jquery/ är ett exempel på hur man gör med jQuery, det ändra som skilljer denna kod mot den som jag skrev ovan är att jag har en querystring som säger hämtar bara AJAX datan, inget annat, men det gå lika bra att hämta all data och filtrera ut resultatet.

 

Redigerad: eftersom jag inte kan prototype så gjorde jag en snabb mockup i jquery för att visa hur enkelt det kan vara med ett ramverk:

http://voigt.se/sandbox/aspkoll/ajaxload/

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 12 februari 2010. Läs tidigare inlägg.
ID: #19417 | Skapades: 2010-02-12 12:02:31

voigtan
voigtan

Gradering

#19422

    <script type="text/javascript">
        var navLinks = $$('#nav a');
        for(var i=0;i<navLinks.length;i++) {
            Event.observe(navLinks[i], 'click', respondToClick);
        }

        function respondToClick(e) {
            e.preventDefault();
       
            new Ajax.Request(this.href, {
                method:'get',
                onSuccess: function(transport){
                    var response = transport.responseText || "no response text";
                    $('content').innerHTML = response;
                }
            });

        }
    </script>
Det du få göra där om du måste köra prototype nu är att försöka lösa vad den skall ta från response variablen med regexp, vilket är lättare sagt än gjort kan tyckas då du inte vill bryta på </div>. Nu är man ännu en gång extremt glad att man inte lärt sig prototype ;)

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 12 februari 2010. Läs tidigare inlägg.
ID: #19422 | Skapades: 2010-02-12 15:24:42

voigtan
voigtan

Gradering

#19423

Gjorde en "fix" för prototype, den letar efter kommentaren <!--Content--> och allt mellan den och <!--/endContent--> är vad den skall rendera ut, test: http://voigt.se/sandbox/aspkoll/ajaxload/

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19423 | Skapades: 2010-02-12 15:35:38

wimpey
wimpey

Gradering

#19424

Tack! Det där skulle jag kunna fixa, nu är mitt nästa problem hur jag ska fixa nästa och föregående-knappar, vet ej hur ajg ska bära mig åt om jag nu ska hämta html-dokument istället för divs.

Någon idé?

http://www.lilypad.se
Redigerades av wimpey den 12 februari 2010. Läs tidigare inlägg.
ID: #19424 | Skapades: 2010-02-12 16:18:52

voigtan
voigtan

Gradering

#19425

Citerar wimpey:

Det där skulle jag kunna fixa, nu är mitt nästa problem hur jag ska fixa nästa och föregående-knappar, vet ej hur ajg ska bära mig åt om jag nu ska hämta html-dokument istället för divs.

Någon idé?

Ja, använd inte javascript för navigering. Det är lösbart att göra, men tyvärr så krävs det lite mer javascript och förståelse på hur en webbläsare fungera än vad jag har tid med att ge dig gratis, har redan offrat för många timmar på ett ramverk jag verkligen hatar.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19425 | Skapades: 2010-02-12 16:20:34

voigtan
voigtan

Gradering

#19426

Citerar wimpey:

vet ej hur ajg ska bära mig åt om jag nu ska hämta html-dokument istället för divs.

Du få ju hela HTML dokumentet i AJAX anropet, skit i filtreringen med RegExp och skriv över allt på sidan, nackdelen är ju att de nya elementen på sidan som har javascript och funktioner som webbläsaren inte har läst in kommer inte att fungera alls.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19426 | Skapades: 2010-02-12 16:34:38
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy