PDA

View Full Version : حرفه ای: باز شدن يك پاپ آپ فرم حاوي اديتور



sav68.net
یک شنبه 05 مهر 1388, 23:59 عصر
سلام دوستان

من دنبال يك نمونه كد هستم كه مثلا وقتي كاربر روي دكمه كليك ميكنه يك پنجره ي پاپ آپ باز شه و مثلا يك اديتور توي اون باشه و وقتي كه كاربر دكمه ي تائيد پنجره ي پاپ آپ را زد محتويات اديتور كپي بشه توي يك تكست باكس توي پنجره ي اصلي كه همون مرورگر باشه


البته من با بخش اديتورش مشكلي ندارم اگر تكست باكس هم بجاي اديتور باشه خوبه



مشكل اصلي باز شدن پنجره ي پاپ آپ
كپي شدن محتويات از پنجره ي پاپ آپ به پنجره ي اصلي


لطفا دوستان اگر نمونه كدي دارند و يا خودشون ميتونن توضيح بدن منو راهنمايي كنن

با تشكر

alireza_s_84
دوشنبه 06 مهر 1388, 01:22 صبح
سلام:
خواستم باز تاپیک جدید بزنم دیدم تاپیکهام زیاد میشه چشمم میزنن:بامزه: گفتم همینجا توضیح میدم بهتره:
برای باز کردن popup بصورت زیر عمل کنید:
یک تابع تعریف کنید با جاوا اسکریپت که کنترلی که قراره محتویات ادیتور رو توش بریزیم رو به عنوان پارامتر بگیره
مثلا من یک Textbox دارم به اسم txtTopicRemark و یک Button به نام btnEditorRemark حالا برای رویداد کلیک Button اسم اون تابع رو با پارامتر Textbox بدین
کد تا اینجای مبحث:


<script type="text/javascript">
var strHTML = '';
var TargetControl;
function OpenEditor(TargetControlID)
{
strHTML = document.getElementById(TargetControlID).value;
TargetControl = document.getElementById(TargetControlID);
var Features = (document.all)?('left=100px,top=100px,'):('screenX =100px,screenY=100px,')
window.open('EditorURL','Editor',Features + 'width=545px,height=350px,scrollbars=false,toolbar =false,resizable=false,menubar=false',true);
}
</script>
خوب حالا کل کد رو تفسیر میکنم:
متغیر strHTML : کار این متغیر اینه که ما محتویات Textbox رو جهت ویرایش درون اون قرار میدیم.
متغیر TargetControl: که Textbox ما رو توی خودش نگه میداره(اگه ده تا باکس هم داشته باشیم با همین کد همشونو استاد میکنیم)
تابع ما ID اون Textbox رو میگیره و در خط اول با استفاده از اون مقدار Textbox رو درون متغیر strHTML قرار میده.
در خط دوم خود شی Textbox رو درون متغیر TargetControl قرار میدیم.
در خط سوم یک متغیر برای محل قرار گیری popup هنگام نمایش تعیین میکنیم(Features)
در خط چهارم popup رو باز میکنیم(به جای EditorURL باید آدرس Editor رو بنویسیم)
خوب تا اینجا کار این صفحه تمومه
حالا نوبت Editor ماست.
معمولا Editorها یک خاصیت برای ست کردن متنی که باید ویرایش بشه دارن
برای ست کردن این خاصیت به اینصورت عمل میکنیم: opener.strHTML
و برای اینکه بعد از عمل ویرایش محتویات ادیتور به درون Textbox ریخته بشه باید به اینصورت عمل کنیم:
opener.TargetControl.value=Editor.Value
که در اینجا EditorValue متویات ایدیتور ماست
انشاا... که متوجه شده باشن دوستان
میدونم بدون مثال فایده نداره اما شاید کارتون گیر باشه با این یه خورده راه بیفته سعی میکنم فردا با یه ادیتور خوب همشو تکمیل کنم
موفق باشید

golagha_program
دوشنبه 06 مهر 1388, 09:43 صبح
حالا من يه چيز ديگه پيشنهاد مي كنم. بجاي popup form بيا popup modual extendero خودت با كد جاوا پياده سازي كن هم سرعتش بالاست هم حجمش پايين.
اينم كدش.

sav68.net
دوشنبه 06 مهر 1388, 11:19 صبح
سلام

ضمن تشكر از دوستان

alireza_s_84 (http://barnamenevis.org/forum/member.php?u=35861) , golagha_program (http://barnamenevis.org/forum/member.php?u=18577) , ممنون كدها كاربردي بودند

اما راستش من ميخوام اون صفحه اي كه باز ميشه يك صفحه ي سمت سرور باشه يعني اون رو با جاوا اسكريپت ايجاد نكنم مثلا مثل بخش اتچمنت همين فروم ديدن كه وقتي روي دكمه ي مديريت ضميمه ها كليك ميكنيم چه اتفاقي مي افته؟ يك پنجره باز ميشه كه توي اون يكسيري كنترول هاي سمت سرور است

كاري كه من ميخواهم در وبسايتم انجام بدم اينه كه براي هر مقاله اي كه ميفرستم يك تكست باكس ساده براي نظرات كاربران گذاشتم كه به راحتي ميتونن در مورد اون مقاله نظر بدن اما ميخوام يك دكمه ي ويرايشگر حرفه اي هم بذارم
كه اگه كاربر رو اون كليك كرد يك پنجره ي پاپ آپ باز شه و توي اون مثلا fckEditor باشه و وقتي كه كاربر متنش رو تايپ كرد و اوكي كرد متنش بياد توي اون تكست باكس اولي

نميدونم خوب منظورم رو گفتم يانه
ممنون ميشم دوستان باز هم كمك كنن


با تشكر

sav68.net
سه شنبه 07 مهر 1388, 01:48 صبح
سلام

دوستان لطفا يك نفر منو راهنمايي كنه

با تشكر

آریوس1985
سه شنبه 07 مهر 1388, 10:54 صبح
اگر درست متوجه شده باشم منظورتون رو
راهی که دوستمون گفتند
خیلی کامل و درست بود.درسته که از JavaScript صدا زده میشه اما PostBack می خوره.بنابراین شما هم می تونید با کنترل های سمت سرور به راحتی کار کنید

window.open('EditorURL','Editor',Features + 'width=545px,height=350px,scrollbars=false,toolbar =false,resizable=false,menubar=false',true