PDA

View Full Version : سوال: درخواست راهنمایی در مورد textarea و ارسال به آن



Mahya_fatah
شنبه 06 آذر 1400, 10:47 صبح
سلام
میخوام به ادیتور وبلاگ متنی در حالت HTML بفرستم که باید در ادیتور وبلاگ حالت textarea را انتخاب کنم بصورت دستی راحت وارد میکنم
اما در وب بروزر سی شارپ هر کاری میکنم نمیتونم به textarea بفرستم
چند نمونه کد هم تست کردم میذارم اینجا

//get the main div HTML element by ID
var cke1ContentsElements = webBrowser1.Document.GetElementById("cke_1_contents");
//from main div select all HTML elements with the tag name "textarea"
var cke1TextareaList = cke1ContentsElements.GetElementsByTagName("textarea");
//from the selected list of items set value attribute for first element
cke1TextareaList[0].SetAttribute("value", "Send This String To TextArea ");


HtmlElement textArea = webBrowser1.Document.All["foo"];
if (textArea != null)
{
textArea.InnerText = "This is a test";
}


HtmlDocument doc = this.webBrowser1.Document;
doc.GetElementById("myId").SetAttribute("Value", "someValue");

Mahya_fatah
شنبه 06 آذر 1400, 18:15 عصر
سلام
خواهشا اگر کسی بلده کمکم کنه میخوام به این وبلاگدهی بفرسم http://pmcblog.ir
خیلی کارم ضروریه کلی جستجو کردم اما نتونستم
اینجا هم کلی تاپیک دیدم ولی همشون نصفه و نیمه بودن و نتیجه ای نداشتن

mazoolagh
یک شنبه 07 آذر 1400, 12:33 عصر
سلام و روز خوش

1- شما اول باید در مرورگر (نه کنترل وب بروزر) از طریق ابزار development همون مرورگر اون المانی رو که در نظر دارین پیدا کنین و موقعیت اون رو در داکیومنت ببینین که چی هست،
اگر id داشت که خب با getelementbyid راحت انتخاب میشه چون id یکتا هست،
وگرنه نزدیکترین parent رو که id داره پیدا کنین و در این المان با getelementsbytagname یک کالکشن از این المانها پیدا میکنین که حالا یکی یکی باید اونها رو برای یک وضعیت یکتا چک کنین.
گاهی ممکنه از طریق child راحتتر به المان برسین.

2- چون کنترل وب بروزر بر مبنای ie9 هست باید مطمئن بشین که اون داکیومنت در ie9 درست نمایش داده میشه (شامل کدها javascript هم میشه).

اون تاپیک هایی که میگین نصفه نیمه بودن احتمالا برای شرایط خاص همون پرسش نمونه کد دارن ولی اصول کار همین هست.

Mahya_fatah
یک شنبه 07 آذر 1400, 17:21 عصر
سلام و روز خوش

1- شما اول باید در مرورگر (نه کنترل وب بروزر) از طریق ابزار development همون مرورگر اون المانی رو که در نظر دارین پیدا کنین و موقعیت اون رو در داکیومنت ببینین که چی هست،
اگر id داشت که خب با getelementbyid راحت انتخاب میشه چون id یکتا هست،
وگرنه نزدیکترین parent رو که id داره پیدا کنین و در این المان با getelementsbytagname یک کالکشن از این المانها پیدا میکنین که حالا یکی یکی باید اونها رو برای یک وضعیت یکتا چک کنین.
گاهی ممکنه از طریق child راحتتر به المان برسین.

2- چون کنترل وب بروزر بر مبنای ie9 هست باید مطمئن بشین که اون داکیومنت در ie9 درست نمایش داده میشه (شامل کدها javascript هم میشه).

اون تاپیک هایی که میگین نصفه نیمه بودن احتمالا برای شرایط خاص همون پرسش نمونه کد دارن ولی اصول کار همین هست.
سلام
منم همین کارو میکنم ای دی را میگیرم ولی هرکاری میکنم نمیشه
سورسش اون بخش صفحه ادیتور اینه :

<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 700px; height: 515px; font-family: &quot;Courier New&quot;, Courier, monospace; font-size: 12px;" dir="ltr" class="mceFocus" wrap="soft"></textarea>
که آییدیش میشه htmlSource

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

mazoolagh
سه شنبه 09 آذر 1400, 11:21 صبح
اول در خود محیط development مرورگر در کنسول دستور زیر رو امتحان کنین و مطمئن بشین که نتیجه اش undefined یا null نیست،
document.getelementbyid('htmlsource');

بعد یک عبارت در textarea تایپ کنین و با دستور زیر مطمئن بشین درست هست:
document.getelementbyid('htmlsource').value;

با دستور زیر متن رو تغییر بدین:
document.getelementbyid('htmlsource').value='test' ;

اگر اینها درست باشه یعنی مشکل در انتخاب المان نیست و روش setattribute و innertext رو نباید استفاده کنین.