webForumDet fria alternativet

Querystring fråga

15 svar · 828 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20018 810 inlägg
#1

Jag skulle behöva lite hjälp med en fråga ang querystrings och javascript just nu kör jag:

<script type="text/javascript" language="javascript" src="services/calender/?date=<%=request.querystring("date")%>&amp;CalID=1"></script>

Fungera helt okej men jag tänkte att ha denna kalender på en annan hemsida där inte ASP support finns.... kan man på något sätt få in querystringen i den filen? det går inte med ASP querystringar och att den reagera på det :(

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Inte mig veterligen. Vill du prompt använda frågesträngar, får du göra det i adressfältet i webbläsaren och sedan läsa av värdena därifrån.

voigtann1Medlem sedan juni 20018 810 inlägg
#3

Hur menar du då?
Det kan gärna vara mer <script> taggar då jag behöver verkligen få "in" querystringarna i min asp fil...

kan man använda document.write(<script type="text/javascript" language="javascript" src="...) för att lösa det?

emissionMedlem sedan dec. 19996 095 inlägg
#4
function loadCalendar()
{
   qs=window.location.search;

   if (qs.length>1)
   {
      qs=qs.substring(1,qs.length);
      pairs=qs.split('&');
      value='';
      for (var i=0;i<pairs.length;i++)
      {
         pair=pairs[i];
         paramvalue=pair.split('=');
         if (paramvalue.length>1)
         {
            param=unescape(paramvalue[0]);
            value=paramvalue[1];
            if (param=='date')
            {
               break;
            }
         }
      }
      if (value!='')
      {
         var head = document.getElementsByTagName('head').item(0)
         script = document.createElement('script');
         script.type = 'text/javascript';
         script.src='services/calender/?date=' + value + '&amp;CalID=1';
         head.appendChild(script)
      }
   }
}
voigtann1Medlem sedan juni 20018 810 inlägg
#5

bara så? med <script>[KOD HÄR]</script> Hur "starta" man den då?

voigtann1Medlem sedan juni 20018 810 inlägg
#6

DIn kod lägger den inte in min kalender i själva head taggen? Jag vill ju kunna placera ut den var jag vill....

Peter SMedlem sedan dec. 20025 484 inlägg
#7

Placera emissions kod mellan <head>-taggarna. Sedan anropar du loadCalendar() där du vill att kalendern skall vara. Typ:

<div><script type="text/javascript">loadCalendar();</script></div>
emissionMedlem sedan dec. 19996 095 inlägg
#8

Okej, den fungerade så...

Då får du göra så att du skapar en div (eller något annat trevligt element) där du vill ha kalendern

<div id="kalender"><script type="text/javascript">loadCalendar('kalender');</script></div>

och ändra koden

function loadCalendar(objId)
{
   qs=window.location.search;

   if (qs.length>1)
   {
      qs=qs.substring(1,qs.length);
      pairs=qs.split('&');
      value='';
      for (var i=0;i<pairs.length;i++)
      {
         pair=pairs[i];
         paramvalue=pair.split('=');
         if (paramvalue.length>1)
         {
            param=unescape(paramvalue[0]);
            value=paramvalue[1];
            if (param=='date')
            {
               break;
            }
         }
      }
      if (value!='')
      {
         refObj=document.getElementById(objId);
         script = document.createElement('script');
         script.type = 'text/javascript';
         script.src='services/calender/?date=' + value + '&amp;CalID=1';
         refObj.appendChild(script)
      }
   }
}
voigtann1Medlem sedan juni 20018 810 inlägg
#9

Om jag skulle vilja ha en querystring till då? vi säger att den kan heta event
Problem är att sidan INTE behöver innehålla alltid date= querystringen också... jag får inte koden att visa i huvudtaget. Om jag har en annan querystring som exempel ?page=mainpage då får jag bara ett javascript fel... om sidan är tom så är också kalendern tom... vilket jag inte vill ha :(

Tyvärr får jag inte fram något med något av koderna :(

emissionMedlem sedan dec. 19996 095 inlägg
#10

Den råa varianten skulle vara att bara flytta med querystringen från din sida till JavaScriptet

function loadCalendar(objId)
{
   qs=window.location.search;
   refObj=document.getElementById(objId);
   if (refObj)
   {
      script = document.createElement('script');
      script.type = 'text/javascript';
      script.src='services/calender/' + qs;
      refObj.appendChild(script)
   }
}

Dock kan jag tänka mig att det JavaScript som körs "externt" inte alls klarar att inkluderas så här. Har du kontroll över hur det är skrivet?

voigtann1Medlem sedan juni 20018 810 inlägg
#11

jo... jag har kontroll över det som skrivs i och visas med min externa fil... men den ger inget resultat med din kod.... är lika tomt som... tja mina kunskaper inom javascript :e
det mesta jag har i den externa filen är document.write()...

emissionMedlem sedan dec. 19996 095 inlägg
#12

Du får gärna visa lite av den koden, så kan vi säkert komma fram till något bra

voigtann1Medlem sedan juni 20018 810 inlägg
#13

med min externa fil är mest för document.write(<%ASP taggar%>)
... har inget annat javascript i den filen...

emissionMedlem sedan dec. 19996 095 inlägg
#14

Oki, då rekommenderar jag att du skriver om den koden. Med document.write blir det svårt att komma åt problemet annars.

voigtann1Medlem sedan juni 20018 810 inlägg
#15

själva filen är ju en ASP fil som genereras som jag bara vill komma åt med document.write() hur kommer man åt problemet annars?

emissionMedlem sedan dec. 19996 095 inlägg
#16

Ok, vi provar så här..

<script type="text/javascript">
document.write('<script type="text/javascript" src="services/calender/' + document.location.search + '"><\/script>');
</script>
Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb