עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JavaScript setAttribute in IE

Featured Replies

פורסם

אני מנסה לעשות setAttribute לאובייקט מסויים(תא של טבלה) וב-FF זה עובד מצויין אך ב-IE משום מה לא.

document.getElementById('month1').rows[rowNum].cells[(day-1)%7].setAttribute('onclick','pickit(this);');

עשיתי חיפוש בגוגל ומצאתי כל מיני "פתרונות" שלא ממש עבדו.

יש לכם מושג מה עושים?

מי שרוצה להבין על מה מדובר אז הנה העמוד

http://88.152.174.234/dtpicker/dtpicker.html

פורסם

הפתרון הוא -


document.getElementById('month1').rows[rowNum].cells[(day-1)%7].onclick='pickit(this);';

לא הכי אלגנטי, אבל עובד, מכיוון ש javascript יוצר attribute חדש באופן אוטומטי במקרה ומנסים לבצע אליו השמה.

פורסם
  • מחבר

זה אחד הפתרונות שמצאתי בגוגל

הבעיה היא שגם הוא לא עובד

לא ב-FF ולא ב-IE

פורסם

איפה הבעיה ? ב getelementbyid או ב syntax של מה שאחרי זה ?

פורסם

בדוק בבקשה ש

document.getElementById('month1').rows[rowNum].cells[(day-1)%7]

מחזיר לך אובייקט שהוא לא Null תחת IE

פורסם
  • מחבר

מחזיר אובייקט

פורסם

תהנה:

	document.getElementById('month1').rows[rowNum].cells[(day-1)%7].onclick = function() {pickit(this);};

תחליף את השורה בזו. (לא משתמשים ב setAttribute בשביל events).

מה זה האתר הזה ? :)

פורסם
  • מחבר

אחלה תודה

ומה לגביי שתי השורות האלה?

document.getElementById('month1').rows[rowNum].cells[(day-1)%7].setAttribute('class','day');
document.getElementById('month1').rows[rowNum].cells[(day-1)%7].setAttribute('style','cursor: pointer;');

ב-FF עובד אבל ב-IE לא.

סתם אתר... יש שם גם פורום שבניתי

פורסם

באג ידוע של תאימות ביניהם... עזוב, תעשה שיעבוד רק ל FF :)

פורסם

אם אתה יוצר את התאים דינאמית(ע"י innerhtml אולי, לא ראיתי את הקוד):

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

פורסם
  • מחבר

אני בונה את זה בצורה דינמית:

row = document.getElementById('month1').insertRow(rowNum);
row.insertCell((day-1)%7).innerHTML = i;

(ובשביל מה פסרמתי את הלינק אם לא בשביל שתסתכל על הקוד? ;))

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

עכשיו למה לעזאזל האקספלורר המעפן הזה לא יודע לעשות setAttribute כמו שצריך?

באג ידוע של תאימות ביניהם... עזוב, תעשה שיעבוד רק ל FF :)

תהיה ריאליסטי. זה לא יקרה בעשור הקרוב.

פורסם

ומה לגביי שתי השורות האלה?

document.getElementById('month1').rows[rowNum].cells[(day-1)%7].setAttribute('class','day');
document.getElementById('month1').rows[rowNum].cells[(day-1)%7].setAttribute('style','cursor: pointer;');

ב-FF עובד אבל ב-IE לא.

אולי אני מפספס משהו, אבל אתה יכול פשוט לעשות:

object.className = 'day';

object.style = 'cursor: pointer;'

(כש-"object" כמובן זה כל הקוד לפני ה-setAttribute אצלך..)

בעצם, ה-style מיותר. תכניס אותו ל-class...

דוגמה דיי פשוטה יש לך למשל כאן:

http://css.somepeople.net/dynamic

פורסם
  • מחבר

בעצם, ה-style מיותר. תכניס אותו ל-class...

כן זה נכון.

בכל מקרה גם זה:

object.className = 'day';

לא עובד משום מה ב-IE

בעצם יותר נכון להגיד ש-CSS לא עובד ב-IE

הוא משום מה לא מתייחס ל-hover:

div#picker table tbody td.day:hover {
background: #eef;
}

פורסם

תנסה לשנות את זה ל:

div#picker table tbody td.day a:hover {
background: #eef;
}

אגב, אל תשכח להגדיר את ה-css של הלינק בסדר הנכון, LVHA (ר"ת של LoVe-HAte, אם אתה מתעקש): link, visited, hover, active

אה, זה לא לינק בכלל..

ב-IE אין event של hover על שום דבר אחר שהוא לא לינק..

מה שאתה מחפש זה זה:

http://www.thescripts.com/forum/thread157439.html

פורסם
  • מחבר

אותו דבר לגביי שתי השורות האלה:

a#button:hover {
background: url('images/dropdown_hover.gif') no-repeat;
}

a#button:active {
background: url('images/dropdown_active.gif') no-repeat;
}

גם אותן IE לא מבצע

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.