הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   JS | עושה לי נדרש אובייקט (https://hosts.co.il/forums/showthread.php?t=76745)

Skfir 18-07-09 17:54

JS | עושה לי נדרש אובייקט
 
קוד:



<button onclick="ajaxUpload(this.form,'scripts/ajaxupload.php','upload_area'); return false;" class="sub">העלה תמונה</button>

הרצתי debugger זה עושה לי נדרש אובייקט ולא עובד הפונקציה.. והכנסתי את כל המשתנים שצריך והכל

מה בעיה?
וזה לא קשור לפונקציה עצמה כי הרצתי אותה בנפרד בדף html וזה עבד.

Shay Ben Moshe 18-07-09 18:03

אם תיתן את השגיאה אולי נדע...

Skfir 18-07-09 21:16

שגיאה: נדרש אובייקט.
בשורה שהבאתי
יותר מזה?

AlmogBaku 19-07-09 21:54

שגיאה:
תביא את הקוד עצמו!

Skfir 20-07-09 19:14

זה הקוד עצמו אח שלי
זה לא קשור לפונקציה בכלל כי הפונקציה בדף נפרד ב HTML עובדת כמו שצריך.
זה קשור לקריאה שלה.

Daniel 20-07-09 22:44

SKfir, אנחנו כאן רוצים לעזור.

הוא ביקש את הקוד - זאת אומרת שהוא צריך את הקוד, מן הסתם שהוא צריך את כל הקוד כדי לתת לך את הפיתרון - מכיוון שהוא - וגם אנשים אחרים בפורום לא רוצים לשחק במשחק ניחושים.

אם אתה לא מעוניין להראות את הקוד, אל תצפה לעזרה רצינית, כל מה שאוכל זה לתת לך את רשימת הצ'ק ליסט הבאה:
  • האם ייבאת את הקובץ JavaScript עם המחלקה הרלוונטית?
  • האם הפונקציה באמת קיימת שם?

Skfir 21-07-09 01:05

אוקי הנה
קובץ JS :
קוד:

function $m(theVar){
        return document.getElementById(theVar)
}
function remove(theVar){
        var theParent = theVar.parentNode;
        theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
        if(obj.addEventListener)
            obj.addEventListener(evType, fn, true)
        if(obj.attachEvent)
            obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
        if(obj.detachEvent){
                obj.detachEvent('on'+type, fn);
        }else{
                obj.removeEventListener(type, fn, false);
        }
}
function isWebKit(){
        return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxUpload(form,url_action,id_element){
        var html_show_loading = '<img src="images/loader_light_blue.gif">';
        var html_error_http = 'שגיאה';
        var detectWebKit = isWebKit();
        form = typeof(form)=="string"?$m(form):form;
        var erro="";
        if(form==null || typeof(form)=="undefined"){
                erro += "The form of 1st parameter does not exists.\n";
        }else if(form.nodeName.toLowerCase()!="form"){
                erro += "The form of 1st parameter its not a form.\n";
        }
        if($m(id_element)==null){
                erro += "The element of 3rd parameter does not exists.\n";
        }
        if(erro.length>0){
                alert("Error in call ajaxUpload:\n" + erro);
                return;
        }
        var iframe = document.createElement("iframe");
        iframe.setAttribute("id","ajax-temp");
        iframe.setAttribute("name","ajax-temp");
        iframe.setAttribute("width","0");
        iframe.setAttribute("height","0");
        iframe.setAttribute("border","0");
        iframe.setAttribute("style","width: 0; height: 0; border: none;");
        form.parentNode.appendChild(iframe);
        window.frames['ajax-temp'].name="ajax-temp";
        var doUpload = function(){
                removeEvent($m('ajax-temp'),"load", doUpload);
                var cross = "javascript: ";
                cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
                $m(id_element).innerHTML = html_error_http;
                $m('ajax-temp').src = cross;
                if(detectWebKit){
                remove($m('ajax-temp'));
        }else{
                setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
        addEvent($m('ajax-temp'),"load", doUpload);
        form.setAttribute("target","ajax-temp");
        form.setAttribute("action",url_action);
        form.setAttribute("method","post");
        form.setAttribute("enctype","multipart/form-data");
        form.setAttribute("encoding","multipart/form-data");
        if(html_show_loading.length > 0){
                $m(id_element).innerHTML = html_show_loading;
        }
        form.submit();
}

והקריאה לפונקציה באשכול עצמו

nbiwy 21-07-09 02:18

כנראה שחסר לך איזשהו אלמנט בתוך הדף שהפונקציה קוראת לו.
יעזור אם תביא את הקוד של כל הדף לבדיקה.

אבל בכל אופן. מה אתה מנסה לעשות?(!)
אני בטוח שיש דרך קצרה יותר, טובה יותר והרבה יותר יעילה לכוונה שלך.

Skfir 21-07-09 14:09

עשיתי input file ואני רוצה שהקובץ שמכניסים יעלה ב ajax ויציג מתחת ישר את התמונה עצמה בקטן.

nbiwy 21-07-09 15:11

אז למה לא לעשות פשוט iframe מוסתרת בדף, עם name יחודי, להפנות את טופס העלאה אל אותה ה-iframe על ידי target
ולאחר שהקובץ עלה אתה יכול לשלוט בכל אלמנט בדף שמכיל את אותה ה-iframe על ידי window.parent ב-JavaScript שנמצא כמובן באותו סקריפט העלאה שרץ בתוך ה-IFRAME

אני מקווה שזה לא נשמע לך כמו סינית


כל הזמנים הם GMT +2. הזמן כעת הוא 09:50.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ