برگزیده های پرشین تولز

یک مشکل با attachevent

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
سلام . چطور میتونم به اون فانکشنی که باید در attachevent یه ارگومان بدم ؟


مثلا این کد رو ببینید :

کد:
function addEvent(object,type,handler)
{
 if (object.addEventListener) {
  object.addEventListener(type,handler, false);
 } else if (object.attachEvent) {
  object.attachEvent(['on',type].join(''),handler);
 } else {
  object[['on',type].join('')] = handler;
 }
}
 
 
addEvent(anchor,'mouseover',set_status_bar_text)

چطور میتونم به set_status_bar_text یه ارگومان بدم ؟


کد:
text = 'sometext'
addEvent(anchor,'mouseover',function() { set_status_bar_text(text);  });

از این حالت هم استفاده کردم ولی متغیری که در ارگومان استفاده می کنم undefined میشه و اون متغیر در اونجا تعریف نشده هست
مثلا در این کد متغیر text تعریف نشده هست

چه باید کرد ؟
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از shankimout :
سلام . چطور میتونم به اون فانکشنی که باید در attachevent یه ارگومان بدم ؟


مثلا این کد رو ببینید :

کد:
function addEvent(object,type,handler)
{
 if (object.addEventListener) {
  object.addEventListener(type,handler, false);
 } else if (object.attachEvent) {
  object.attachEvent(['on',type].join(''),handler);
 } else {
  object[['on',type].join('')] = handler;
 }
}
 
 
addEvent(anchor,'mouseover',set_status_bar_text)

چطور میتونم به set_status_bar_text یه ارگومان بدم ؟


کد:
text = 'sometext'
addEvent(anchor,'mouseover',function() { set_status_bar_text(text);  });

از این حالت هم استفاده کردم ولی متغیری که در ارگومان استفاده می کنم undefined میشه و اون متغیر در اونجا تعریف نشده هست
مثلا در این کد متغیر text تعریف نشده هست

چه باید کرد ؟
توضیح بده تا برات بگم! نقهمیدم میخوای چیکار کنی دست! میخواس دو تا فانگشنو قاطی هم بزنی؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
منظورش اینه که set_status_bar_text هم یه متغیره که دائماً مقدارش تغییر میکنه .
درست گفتم ...

به قول آقا مهدی چرا اینقدر می پیچونیش ...
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
ببینین من با getElementsByTagName میام تمام تگ های a رو میگیرم و یک event onclick میخام بهش اضافه کنم که وقتی کلیک کرد title اون تگ رو تو statusbar بنویسه !

اونبالا anchor یک دسته برای یک تگ a هست و text هم title اون تگ هست . حالا من میخام به set_status_bar_text یه ارگومان بدم که همون text باشه و تابع set_status_bar_text اونو توی status بنویسه
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از shankimout :
ببینین من با getElementsByTagName میام تمام تگ های a رو میگیرم و یک event onclick میخام بهش اضافه کنم که وقتی کلیک کرد title اون تگ رو تو statusbar بنویسه !

اونبالا anchor یک دسته برای یک تگ a هست و text هم title اون تگ هست . حالا من میخام به set_status_bar_text یه ارگومان بدم که همون text باشه و تابع set_status_bar_text اونو توی status بنویسه
یا تو خیلی میدونی یا من هیچی نفهمیدم! اینو میگی؟
HTML:
<a title="REX" onclick="window.status=this.title" href="#42">GANGSTERZ</a>
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
نفهمیدم چی گفتی . ببین من چند تا تگ دارم این فرمی هست

کد:
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>

حالا میخام بهشون یه event اضافه کنم که وقتی کلیک کرد یا mouseover شد window.status به title اون تگ تغیر کنه

راستی معادل window.status برای ff چیه ؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
خوب این تگ هاتو قبلاً جایی نوشتی یا باید از بانک برداره .
منظورم دینامیکه یا استاتیک
من یه نمونه از اینو دارم .

وقتی که رو یه لینکی mouseover میشه در Ststus بار تایتل رو می نویسه خیلی جالب از صفر میشمره تا Z به هر حرفش که رسید همونو ثابت میکنه میره کاراکتر بعدی .
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از shankimout :
نفهمیدم چی گفتی . ببین من چند تا تگ دارم این فرمی هست

کد:
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>

حالا میخام بهشون یه event اضافه کنم که وقتی کلیک کرد یا mouseover شد window.status به title اون تگ تغیر کنه

راستی معادل window.status برای ff چیه ؟

در ff اگر کاربر خودش در تنطیماتش اجازه نداده باشه نمیشه متن statusbar رو با کد عوض کرد. صد البته بدلایل امنیتی.
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از shankimout :
نفهمیدم چی گفتی . ببین من چند تا تگ دارم این فرمی هست

کد:
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>
 
<a href='somelinks' title='sometitle'> link 1 </a>

حالا میخام بهشون یه event اضافه کنم که وقتی کلیک کرد یا mouseover شد window.status به title اون تگ تغیر کنه

راستی معادل window.status برای ff چیه ؟
کدی که نوشتم خب همین کارو میکنه برات دیگه!!!!
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
یعنی می خوای برای تمام لینک ها یه چیزی نمایش داده بشه ؟
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از sixabat :
یه چیزی میگیا دنیرو!
اینو بزن تو فرونت پیچت ببینم مگه همینو نمیگی شما؟ گرفتیا!

HTML:
<script>
function IQ(ali)
{
window.status=ali.title;
}
function OUT(ali)
{
window.status='';
}
</script>
<a onmousemove="IQ(this)" onmouseout="OUT(this)" href='somelinks' title='baba'> link 1 </a>
<br>
<br>
<a onmousemove="IQ(this)" onmouseout="OUT(this)" href='somelinks' title='chera'> link 2 </a>
<br>
<br>
<a onmousemove="IQ(this)" onmouseout="OUT(this)" href='somelinks' title='nemigirid?'> link 3 </a>
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
من اینو میگم .
البته از نظر اصولی هر دوتا یه جور کار میکنن .

اینو میتونی تو یه فایل JS هم بزاری .برای سبک شدن صفحه .
HTML:
<script>
var data="0123456789";
//set to 1 if not decrypting, set to 0 if decrypting
var done=1;
function statusIn(text){
	decrypt(text,2,1);
}

function statusOut(){
self.status='';
done=1;
}

//-------------------------\\
//decrypt(string, int, int)\\
//-------------------------\\
//
//text(string): the text to be decrypted on 
//the status bar.
//
//max(int): the number of times a random string
//is displayed before the next character is
//'decrypted'.
//
//delay(int): the number of milliseconds between
//each display of a random string
//
//Example:
//decrypt('Enter my site.',10,10);
//
//text = 'Enter my site.' :: 'Enter my site.' is 
//eventually decrypted
//
//max = 10 :: a different random string is dis-
//played 10 times before a new character is
//decrypted

function decrypt(text, max, delay){
	if (done){
		done = 0;
		decrypt_helper(text, max, delay,  0, max);
		}
	
}

function decrypt_helper(text, runs_left, delay, charvar, max){
	if (!done){
	runs_left = runs_left - 1;
	var status = text.substring(0,charvar);
	for(var current_char = charvar; current_char < text.length; current_char++){
		status += data.charAt(Math.round(Math.random()*data.length));
		}
	window.status = status;
	var rerun = "decrypt_helper('" + text + "'," + runs_left + "," + delay + "," + charvar + "," + max + ");"
	var new_char = charvar + 1;
	var next_char = "decrypt_helper('" + text + "'," + max + "," + delay + "," + new_char + "," + max + ");"
	if(runs_left > 0){
		setTimeout(rerun, delay);
		}
	else{
		if (charvar < text.length){
			setTimeout(next_char, Math.round(delay*(charvar+3)/(charvar+1)));
			}
		else
			{
			done = 1;
			}
		}
	}
}

</script>
اینم کد لینک
HTML:
<A href="http://www.Ftorum.persiantools.com" target="_blank" onmouseover="statusIn('http://www.Ftorum.persiantools.com');return true" onmouseout="statusOut();">Ftorum.persiantools</A>

حالا شما اینا رو تو یه صفحه بزار
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از mehdi25 :
من اینو میگم .
البته از نظر اصولی هر دوتا یه جور کار میکنن .

اینو میتونی تو یه فایل JS هم بزاری .برای سبک شدن صفحه .
HTML:
<script>
var data="0123456789";
//set to 1 if not decrypting, set to 0 if decrypting
var done=1;
function statusIn(text){
	decrypt(text,2,1);
}

function statusOut(){
self.status='';
done=1;
}

//-------------------------\\
//decrypt(string, int, int)\\
//-------------------------\\
//
//text(string): the text to be decrypted on 
//the status bar.
//
//max(int): the number of times a random string
//is displayed before the next character is
//'decrypted'.
//
//delay(int): the number of milliseconds between
//each display of a random string
//
//Example:
//decrypt('Enter my site.',10,10);
//
//text = 'Enter my site.' :: 'Enter my site.' is 
//eventually decrypted
//
//max = 10 :: a different random string is dis-
//played 10 times before a new character is
//decrypted

function decrypt(text, max, delay){
	if (done){
		done = 0;
		decrypt_helper(text, max, delay,  0, max);
		}
	
}

function decrypt_helper(text, runs_left, delay, charvar, max){
	if (!done){
	runs_left = runs_left - 1;
	var status = text.substring(0,charvar);
	for(var current_char = charvar; current_char < text.length; current_char++){
		status += data.charAt(Math.round(Math.random()*data.length));
		}
	window.status = status;
	var rerun = "decrypt_helper('" + text + "'," + runs_left + "," + delay + "," + charvar + "," + max + ");"
	var new_char = charvar + 1;
	var next_char = "decrypt_helper('" + text + "'," + max + "," + delay + "," + new_char + "," + max + ");"
	if(runs_left > 0){
		setTimeout(rerun, delay);
		}
	else{
		if (charvar < text.length){
			setTimeout(next_char, Math.round(delay*(charvar+3)/(charvar+1)));
			}
		else
			{
			done = 1;
			}
		}
	}
}

</script>
اینم کد لینک
HTML:
<A href="http://www.Ftorum.persiantools.com" target="_blank" onmouseover="statusIn('http://www.Ftorum.persiantools.com');return true" onmouseout="statusOut();">Ftorum.persiantools</A>

حالا شما اینا رو تو یه صفحه بزار
آقا اصلا صحبت attachevent بودا!
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
به نقل از shankimout :
سلام . چطور میتونم به اون فانکشنی که باید در attachevent یه ارگومان بدم ؟


مثلا این کد رو ببینید :

کد:
function addEvent(object,type,handler)
{
 if (object.addEventListener) {
  object.addEventListener(type,handler, false);
 } else if (object.attachEvent) {
  object.attachEvent(['on',type].join(''),handler);
 } else {
  object[['on',type].join('')] = handler;
 }
}
 
 
addEvent(anchor,'mouseover',set_status_bar_text)

چطور میتونم به set_status_bar_text یه ارگومان بدم ؟


کد:
text = 'sometext'
addEvent(anchor,'mouseover',function() { set_status_bar_text(text);  });

از این حالت هم استفاده کردم ولی متغیری که در ارگومان استفاده می کنم undefined میشه و اون متغیر در اونجا تعریف نشده هست
مثلا در این کد متغیر text تعریف نشده هست

چه باید کرد ؟

من تا اینجا تونستم جلو برم!

HTML:
<a href='#' title='AAAAA'>link 1</a>
<br>
<br>
<a href='#' title='BBBBB'>link 2</a>
<br>
<br>
<a href='#' title="CCCCC">link 3</a>
<br>
<br>
<a href='#' title='DDDDD'>link 4</a>
<script>
var majic=document.getElementsByTagName("a").length;
for(var i=0;i<document.getElementsByTagName("a").length;i++)
{
var j=document.getElementsByTagName("a")[i];
j.attachEvent("onclick", function () {window.status=j.title})
}
</script>

:f34r:
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
یعنی می خوای برای تمام لینک ها یه چیزی نمایش داده بشه ؟

اره . تایتل اون لینک


دلبندان من ! اگر من میتونستم مستقیما از

کد:
onmousemove="IQ(this)" onmouseout="OUT(this)"

در تگ استفاده کنم که نمیتونم دیگه اینهمه جنجال را نمی افتاد :D

من میخام js اینکارو انجام بده


اقایون خانوما پسرا دخترا تا کید میکنم من دسترسی فیزیکی ( یا هرچی دیگه ) به تگ ها ندارم . با js میخام بهشون event اضافه کنم .
 
بالا