مشکل در اجرا شدن جاوا اسکریپت در صفحه‌ی آزاکس

greencat

Member
سلام به همه دوستان
من چند روز پیش داشتم صفحه‌ای رو طراحی می‌کردم که توش از آزاکس استفاده کرده بودم و به یه مشکل برخوردم اونم اینه :
مثلا فکر کنید شما یه Div دارید که محتویاتش توصط آزاکس پر میشه مثل کد زیر :
کد:
<div id="ajax"> </div>

حالا ما با استفاده از آزاکس موقعی که فراخوانی بشه div بالا رو با یک سری کد html و اطلاعات پر میکنیم که یکیش تگ textarea هستش که به div مون اضافه میشه ( و حتما میدونید وقتی می‌خواهیم برای یک textarea یک editor قرار دهیم معمولا اون رو به یک id مشخص میکنیم و در صفحه با جاوااسکریپت میگیم هرجایی که textarea مون این id خاص رو داشتش editor رو براش قرار بده) حالا منم توی این div که اطلاعاتش توسط صفحه آزاکس پر میشه می‌خوام برای textarea یک editor قرار بدم حالا موندم کد‌های جاواش رو کجا قرار بدم ؟؟ توی صفحه‌ی آزاکس قرار دادم کار نکردش و editor ظاهر نشد توی صفحه‌ای که صفحه‌ی آزاکسمون رو فراخوانی می کنه قرار دادم بازم ظاهر نشدش نمی دونم مشکلش از چی و کجاست!! کسی تاحالا به این مشکل برخورده یا راه حلی براش داره؟؟

توضیحات تکمیلی :
برای فرم و حالت دادن به تگ‌های html ای که توی div مربوطه توسط ازاکس ایجاد میشن از css خارجی استفاده کردم و توی صفحه‌ی css ام کاس براشون ساختم و لینک صفحه‌ی css رو فقط توی صفحه‌ای که صحه‌ی آزاکس رو فراخوانی می کنه گذاشتم و css ها کار کردش اما برای جاوا اسکریپت این طور نیست!! چرا ؟؟
توی نت هم به انگلیسی سرچ کردم و دیدم خیلی ها این مشکل رو دارن یعنی اجرا نشدن اسکریپت‌های جاوا اسکریپت در صفحه‌های آزاکس مثلا اجرا نشدن کد زیر :

کد:
<div id="ajax">
<script language="javascript" type="text/javascript">
alert("test");
</script>
</div>
که این محتویات div با آزاکس پر میشه، حالا دلیل اجرا نشدنش چیه!!!!(این فقط یه مثال بود مشکل من همونی بود که بالا گفتم ظاهر نشدن editor برای textarea صفحه‌ی آزاکس)

امیدوارم منظورم رو رسونده باشم اگر سوالی بود یا جایی مبهم بود بپرسید.
ممنون از راهنماییتون
 

greencat

Member
توضیحات بیشتر
درواقع الان همین صفحه رو نگاه کنید اگر دکمه ویرایش رو بزنید برای شما با استفاده از آزاکس یه div ظاهر میشه که توش یه textarea هستش و این تگ دارای یک ادیتور هستش (البته اگر ادیتورش با جاوااسکریپت باشه که فکنم باشه) چه طور این جاوا اسکریپت توی این div که با آزاکس محتویاتش پر میشه قرار داده شده ؟ و run میشه؟
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
الان مشکل ظاهر نشدن ادیتور هست ؟
و حتما میدونید وقتی می‌خواهیم برای یک textarea یک editor قرار دهیم معمولا اون رو به یک id مشخص میکنیم و در صفحه با جاوااسکریپت میگیم هرجایی که textarea مون این id خاص رو داشتش editor رو براش قرار بده
خیر الزاما این طور نیست شما کد جاوا که داخل صفحه فراخوانی نیکنید و باعث نمایش ادیتور میشه رو میتونید تنظیم کنید که کلا برای همه textarea ها ادیتور رو نمایش بده.
 

greencat

Member
اره الان مشکل ظاهر نشدن ادیتور هستش.
خوب شاید نخواییم بقیه textarea ها ادیتور داشته باشه!!! اون وقت چی؟ معمولا هر textarea ای رو که بخوایم editor داشته باشه یه id خاص براش معیین میکنیم و بعد اون رو میفرستیم به کدهای جاوا، الان به نظر شما من این کد‌های جاوااسکریپت رو که برای نشون دادن editor هستش توی صفحه‌ی ajax بزارم یا صفحه‌ای که آزاکس رو فراخوانی میکنه و div ای که با آزاکس پر میشه توشه؟؟
کد:
<script type="text/javascript" src="http://mysite.com/wysiwyg.js"></script>
<script type="text/javascript" src="http://mysite.com/wysiwyg-settings.js"></script>
<script type="text/javascript"> WYSIWYG.attach('textarea3', small); </script>
همون طور که میبینید توی خط سوم id فثطفشقثش دلخواهی رو که میخواییم وارد می‌کنیم ( اینجا textarea3 ) که این textarea دارای editor بشهبه نظر شما این 3 خط کد رو کجا وارد کنم؟ من توی هر دوصفحه امتحان کردم اما جوابی نگرفتم!!! راهی به نظرتون نمیرسه ؟
 

eAmin

Well-Known Member
این تاپیک رو بخونید برای اینکه اگر خواستید خودتون از پایه یک چنین چیزی رو طراحی کنید، روش کار رو درک کنید.
برای اجرا کردن کدهای JavaScript پیشنهاد میکنم این و این تاپیک رو مشاهده کنید، بطور کامل توضیح داده شده.

در مورد فایلهای JavaScript خارجی هم می تونید، فایلهای js رو در صفحه والد بصورت معمول لود کنید، یا آدرس فایلهای js رو در صفحه فرزند ( صفحه ای که از طریق ای جکس لود شده ) استخراج کنید و با استفاده از Dom scripting فایلها رو یک به یک اجرا کنید ( مثل google analytics ).

موفق باشید.
 

farik

Well-Known Member
با سلام..
خوب دوست عزیز اشکال از شما نیست..بحث اینه که بعضی از ادیتور ها از حالت ایجکس مد پشتیبانی نمیکنند..من خودم به خاطر اینکه اکثر کارهایی که انجام میدم با ایجکس هست از ادیتور tinyMCE استفاده میکنم ..و البته ادیتور رو در صفخه اصلی لود میکنم و بعد با یکسری کد های ساده ،به تکست اریا یا دایو ادیتور رو اضافه میکنم..اگه با تغییر ادیتور مشکلی ندارید بگین تا کد های لازم رو واستون بزارم..
 

greencat

Member
سلام دوست عزیز
ممنون از جوابتون راستیتش ادیتور که برام مهم هستش و می‌خوام اگه بشه همین بمونه ولی چاره چیه فعلا که راهی نداره ممنون میشم اگه کد‌هاتون رو برام بفرستید و یا اینجا پیوست کنید تا دانلود کنم، دموی آنلاین هم ازش دارید تا ایدتورش رو ببینم؟ ( البته اسمش برام آشناس)

به هر حال من یه سری کدی که مربوط به سوالم هستش رو اینجا قرار میدم تا اگه دوستان تونستن کمک کنن.
همون طوری که توی این فایل‌ها نشون دادم با روشی که دوست خوبمون eAmin گفتن تونستم مثلا تابع alert() رو اجرا کنم توی صفحه‌ی آزاکس اما ادیتور رو نتونستم لود کنم یه نمونه از ادیتور رو هم توی صفحه‌ی والد گذاشتم که کامل لود میشه اما توی صفحه‌ی فرزند لود نمیشه!!!
ممنون از کمکتون.
 

پیوست ها

  • Newfolder.rar
    97.6 کیلوبایت · بازدیدها: 9
آخرین ویرایش:

farik

Well-Known Member
با سلام مجدد...
اول بگم تا اوجایی که من تست کردم روش ایشون و کلا روش های لود ایجکس بعد از ابز شدن صفحه برای فایلهای بزرگ و حجیم جواب نمیده...(نمونش اینکه من خودم میخواستم واسه لود کردن ادیتور تو صفحه هر وقت لازم شد کدهای جاوا اسکریپت رو لود کنم که بیخودی همش گیر میداد)..
خوب اینم از مثال هاش:
http://tinymce.moxiecode.com/tryit/ajax_load_save.php
http://tinymce.moxiecode.com/wiki.php/How-to_load/save_with_Ajax_in_TinyMCE
اینم سایتش:tinymce.moxiecode.com
حالا که بحث شد باید بگم واقعا بهترین و زیباترین ادیتوریه که من دیدم..مثل این کم دیدم..با اینهمه امکانات...حالا باهش اگه حرفه ای تر کار کنین متوجه میشین..
 

جدیدترین ارسال ها

بالا