הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 09-10-11, 22:52   # 1
morsrh
חבר מתקדם
 
morsrh's Avatar
 
מיני פרופיל
תאריך הצטרפות: Feb 2010
מיקום: אשקלון.
גיל: 30
הודעות: 444
שלח הודעה באמצעות MSN אל morsrh

morsrh לא מחובר  

Exclamation סיבוך עם JS

אהלן ,

אני ב"ה בונה API קטן ויש לי בעיה שאני לא מצליך לפתור , הנה הבעיה


יש קובץ JS שאני נותן למשתמשים לייבא מהאתר שלי שמכיל פונקצית JSONP , לא משנה איפה הקוד הודפס לפני שאני מריץ את הפונקציות אני צריך לבדוק אם התאג המיוחד של הAPI הודפס כבר (apitag , בהמשך תבינו) , אם תג הAPI כבר הודפס -> תריץ פונקציות
אם התג של הAPI לא הודפס עדיין , תחכה שיודפס ואז תבצע את הפקודות

לדוגמא , יש לי את הקוד הזה :

קוד:
<html>
  <head>
    <!-- js code - contain Jsonp functions -->
    <script type="text/javascript" src="jsonp.js"></script>
  </head>

  <body>
    <!-- when this newtag get print , the function starts -->
    <newtag:api size="small">myNewTag</newtag:api>
  </body>
</html>
אני לא יכול לנקוט בכאלה שיטות :
קוד:
<newtag:api size="small">myNewTag</newtag:api>
<script> startJsonp(); </script>
מכיוון שאני לא יודע אם המשתמש הדפיס את הקוד עדיין או לא ,

אני גם לא יודע איכן המשתמש הדפיס את קוד ה JS , זה יכול להיות בHEAD , ואולי בסוף הדף
לכן אני לא יכול לנקוט בכאלה שיטות
אם זה ב HEAD אני לא יכול לבצע את הפקודות כי אני צריך שהתאג יהיה מודפס קודם


אני לא רוצה להשתמש ב window.onload הטעינה של הדך יכולה להמשך מספר שניות ויצור עיקוב
jquery אני לא יכול לסמוך אם למשתמש יש JQ בדף

השאלה שלי היא האם יש איזה שהוא listener או משהו כזה שיכול לעקוב מתי התאג הספציפי הזה הודפס ואז להפעיל את הפונקציה או משהו כזה

מה עושים במצב כזה?
  Reply With Quote
ישן 09-10-11, 23:06   # 2
IgalSt
מנהל פורום, עסק רשום
 
IgalSt's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: המרכז
גיל: 37
הודעות: 1,432
Send a message via Skype™ to IgalSt

IgalSt לא מחובר  

אם אתה לא יכול להשתמש ב- onload, תבדוק כל כמה 100-200 ms אם התג קיים בעמוד.

בכל אופן, רק שתדע, אתה לא יכול להכריז סתם ככה תג משלך.
תראה איך FB או open graph עושים את זה, או שפשוט תשתמש ב-DIV עם ID/CLASS ייחוגיים.
  Reply With Quote
ישן 09-10-11, 23:40   # 3
morsrh
חבר מתקדם
 
morsrh's Avatar
 
מיני פרופיל
תאריך הצטרפות: Feb 2010
מיקום: אשקלון.
גיל: 30
הודעות: 444
שלח הודעה באמצעות MSN אל morsrh

morsrh לא מחובר  

יגאל ,

את התאג הכרזתי בשביל להחליף אותו אחרי זה עם תוכן ה API עם replaceChild , זה בשביל שלא יהיה במקרה שני דיבים לדוגמא עם אותו ID
הכוונה ל XML? אתה יכול למקד אותי למה התכוונת שאמרת לראות איך OG עושים את זה?
ועוד שאלה , אין דבר כזה ב JS משהו כמו listener ?

Last edited by morsrh; 09-10-11 at 23:46..
  Reply With Quote
ישן 10-10-11, 07:57   # 4
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

את הסריפט אתה יכול לממקם במקום בתוך הBODY, ואז פשוט לעשות document.write
  Reply With Quote
ישן 10-10-11, 10:00   # 5
IgalSt
מנהל פורום, עסק רשום
 
IgalSt's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: המרכז
גיל: 37
הודעות: 1,432
Send a message via Skype™ to IgalSt

IgalSt לא מחובר  

ציטוט:
נכתב במקור על ידי morplug צפה בהודעה
יגאל ,

את התאג הכרזתי בשביל להחליף אותו אחרי זה עם תוכן ה API עם replaceChild , זה בשביל שלא יהיה במקרה שני דיבים לדוגמא עם אותו ID
הכוונה ל XML? אתה יכול למקד אותי למה התכוונת שאמרת לראות איך OG עושים את זה?
ועוד שאלה , אין דבר כזה ב JS משהו כמו listener ?
תראה את השורה הזאת באתר של OG:
קוד:
<html xmlns:og="http://ogp.me/ns#">
פה הם בעצם מכירים על התגים המיוחדים שלהם ומספרים על כל למנוע שמרנדר את ה-xHTML.

בכל אופן, זה over kill רציני עבור מה שאתה צריך.

כמו שהציעו פה, למה שלא תדפיס את הקוד שלך עם document.write פשוט, שגם מייצר את ה-HTML הנדרש? פשוט תדאג שהלקוח שלך ישים את ההדפסה במקום שהוא רוצה בו את האלמנט שלך.

ב-js יש listeners, רק אתה אמרת שאתה לא יכול להשתמש בהם. לדוגמה ה-onload. אבל אין לך משהו טבעי שיכול לבדוק אם תג מסויים קיים כבר בעמוד.
יש לך ארוע שאתה יכול להאזין לו, שמשוגר (fired) בכל שינוי של ה-DOM אם אתה מעוניין. אבל זה הרבה מעבר למה שאתה צריך ויעמיס לך מאוד על הקליינט. הפתרון הטוב ביותר במקרה שלך לדעתי הוא onload, ואם אתה לא מעוניין בו אז איזשהו interval שיבדוק אם משהו התג כבר קיים, ואם כן תבטל את ה-interval ותעשה את מה שאתה מעוניין לעשות.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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