Url-Standard erstellen

elyion_g2

Grünschnabel
Hallo erstmal,

Ich bin hier neu und hoffe es richtig zu machen

Ich hoffe ihr könnt mir helfen. Folgendes Problem:

-> Ich möchte gerne per Javascript und Ajax in einem DIV einen inhalt laden. bisher habe ich dieses Script:
Code:
<script type="text/javascript">

/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}

</script>
<script type="text/javascript">
window.onload = function() {
   var allLinks;
   if (document.getElementsByClassName)
      allLinks = document.getElementsByClassName("Link_Class_einfügen");
   else
      allLinks = getElementsByClassName(document, "A", "Link_Class_einfügen");

   for(var i=0; i<allLinks.length; i++)
   {
      allLinks[i].onclick = function() {
         ajaxpage(this.href,'div_id');
         return false;
      }
   }
}

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements);
}
</script>

Durch dass kann ich von einem Link der einer bestimmter klasse zugewiesen wurde, in einen div mit einer bestimmten ID einen inhalt einfügen.

Nun möchte ich aber, dass ich z.B. einen zweiten Link machen kann, der dann die selbe funktion ausführt, nur auf einen anderen div mit einer anderen ID...

Ich hoffe ihr kommt ein wenig nach!


Ich danke euch vielmals für eure Antworten!
 
Versuch mal in Zeile 83 'div.id' durch this.title zu ersetzen.
Im Title-Attribut des Links kloppst du dann jeweils die id des jeweiligen divs.

// ungetestet, versuch es einfach mal
 
Versuch mal in Zeile 83 'div.id' durch this.title zu ersetzen.
Im Title-Attribut des Links kloppst du dann jeweils die id des jeweiligen divs.

// ungetestet, versuch es einfach mal

meinst du das etwa so:

Code:
<script type="text/javascript">
 
/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
 
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""
 
function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}
 
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}
 
function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
 
</script>
<script type="text/javascript">
window.onload = function() {
   var allLinks;
   if (document.getElementsByClassName)
      allLinks = document.getElementsByClassName("Link_Class_einfügen");
   else
      allLinks = getElementsByClassName(document, "A", "Link_Class_einfügen");
 
   for(var i=0; i<allLinks.length; i++)
   {
      allLinks[i].onclick = function() {
         ajaxpage(this.title,'div_id');
         return false;
      }
   }
}
 
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements);
}
</script>

? -> denn dort wo jetzt "div_id" steht müsse eigentlich die ID des Divs hin geschrieben werden.... je nach div der angewählt werden soll...

danke für deine schnelle antwort!!
 
tut mir leid wenn ich noch nicht so gut im erklären binn...

-> 'div_id' bedeutet soviel wie: 'hier müsste die ID des DIVs hinein indem der inhalt geladen werden soll'

-> "Link_Class_einfügen" (zu finden auf linie 76 und 78) bedeutet dass dort die klasse des Links eingetragen werden muss -> wenn ein link in dieser klasse ist, lädt er (dass was er laden sollte , z.B. zweiteseite.html) in dem div der die ID hat, die in linie 83 angegeben ist den inhalt. (und nicht regulär als neue seite)

wenn ich nun einen neuen link anlege der einer anderen klasse zugeordnet ist, sollte dieser nun in einem anderen div (der wieder wie oben vordefiniert werden muss. und dadurch auch eine andere ID haben muss) den inhalt laden, und nicht im ersten div und nicht als neue seite...

versteht ihr es jetzt ein wenig besser?

ich möchte im endeffekt dass man z.b. bei Adobe Dreamweaver einen Text markieren kann - URL drauf setzen - Klasse zuweisen und fertig.

dadurch das dieser link nun dieser speziellen klasse zugeordnet ist, müsste die URL die er lädt sich im DIV mit der vordefinierten ID laden.
 
Ja und genau dieses 'div-Id' solltest du mal mit this.title ersetzen. Denn dann fügt er das, was im title-attribut des jeweiligen Links steht ein. Das musst du dann natürlich händisch jedem Link mitgeben (ein Title-Attribut mit der ID des jeweiligen Divs), da gibt es aber auch in DW soweit ich weiß ein Feld für....
 
Zurück