Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    [Ajax JS e htm]Non funziona alcun script all'interno di pagine caricate tramite ajax

    Buonasera, io uso questo codice per sostituire il main della mia mia index con in contenuto di un altra pagina.

    Codice PHP:
    var cartip=document.createElement("div"//Dynamically create tooltip element
    cartip.setAttribute("id""cartooltip")
    document.body.appendChild(cartip)
    var 
    cartooltipobj=document.getElementById("cartooltip")
    var 
    rightcolumnobj=document.getElementById("rightcolumn")

    function 
    ietruebody(){
    return (
    document.compatMode && document.compatMode!="BackCompat")? document.documentElement document.body
    }

    document.getElementById("rightcolumn").onmouseover=function(){ //show tooltip
    var titletext=document.getElementById("cartitle")? document.getElementById("cartitle").innerHTML "DD Forums Archive"
    cartooltipobj.innerHTML=titletext
    cartooltipobj
    .style.left=rightcolumnobj.offsetLeft+rightcolumnobj.offsetWidth-180+"px"
    cartooltipobj.style.top=rightcolumnobj.offsetTop+rightcolumnobj.offsetHeight-40+"px"
    cartooltipobj.style.visibility="visible"
    }

    document.getElementById("rightcolumn").onmouseout=function(){ //hide tooltip
    document.getElementById("cartooltip").style.visibility="hidden"

    Più questo:

    Codice PHP:
    <script type="text/javascript">
    var 
    loadedobjects=""
    var rootdomain="http://"+window.location.hostname

    function ajaxpage(urlcontainerid){
    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_requestcontainerid)
    }
    page_request.open('GET'urltrue)
    page_request.send(null)
    }

    function 
    loadpage(page_requestcontainerid){
    if (
    page_request.readyState == && (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=0i<arguments.lengthi++){
    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> 
    Ho notato che quando vado a caricare una pagina tramite la funzione ajax, all'interno di essa non mi funziona nessun tipo di javascript ad esempio il apri e chiudi di un div.

    Come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    è normale, il codice js incluso con ajax non viene eseguito. Potresti però fare qualcosa del genere:

    codice:
    script_page_request = page_request.getElementsByTagName("script");
    for(i=0;i<script_page_request.length;i++){
    
    
    el = document.createElement("script");
    el.innerHTML = script_page_request[i].innerHTML;
    document.body.appendChild(el);
    }

  3. #3
    ok grazie ora provo.
    edit: non funziona ho provato; aggiungo nell'head della mia index, e poi nella chiamata ajax aggiungo il parametro script.

    grazie
    Ultima modifica di habbofilips; 30-05-2015 a 02:19

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) trasferisci lo script js nel documento principale è carichi via Ajax solo html (soluzione più rapida)
    B) utilizzi Ajax jquery che gestisce anche script inclusi via Ajax (il frame-work richiede però un minimo di conoscenza e studio)
    C) leggi questa discussione (simile a quello che ti ha consigliato Vindav)

    Ultima modifica di cavicchiandrea; 30-05-2015 a 09:37
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    grazie mille ho capito la logica ma non riesco a implementarlo nel mio caso. è da poco che mi son dato a ajax e non sono tanto pratico. potete darmi una mano?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    c'è un errore nel mio script, la riga seguente: script_page_request = page_request.getElementsByTagName("script");
    va cambiata cosi:
    script_page_request = page_request.responseXML.getElementsByTagName("script");



  7. #7
    Codice PHP:
    <script>
    script_page_request page_request.responseXML.getElementsByTagName("script");
    for(
    i=0;i<script_page_request.length;i++){

    el document.createElement("script");
    el.innerHTML script_page_request[i].innerHTML;
    document.body.appendChild(el);
    }
    </script> 
    e la chiamata la faccio cosi

    Codice PHP:
    <a id="script" href="javascript:ajaxpage('html/pagina.htm', 'main');">PAGINA</a
    non va. sbaglio qualcosa? scusa
    Ultima modifica di habbofilips; 30-05-2015 a 13:27

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    lo spezzone di codice che ti ho suggerito va inserito nel codice che hai postato, nella funzione loadpage, messa cosi non fa nulla

    prova anche il primo suggerimento di Andrea se ti è possibile
    Ultima modifica di Vindav; 30-05-2015 a 15:37

  9. #9
    grazie per la disponibilità.

    -si ho tutto nella mia index gli script partono tutti da li. con ajax carico solo codice html
    -non va neppure mettendolo in loadpage, ho provato anche prima diverse posizioni ma nulla.

    Non capisco dove sbaglio...

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Posta il link alla pagina pubblica grazie
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.