# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با شبکه و وب در VB6 >  ارسال مطلب در بلاگفا

## aleas2

سلام خسته نباشید دوستان تو وبلاگ بلاگفا قسمت ارسال پست چطور میتونم قسمت متن و همینطور ادامه مطلب مقدار دهی کنم؟
قبلا به این صورت مقدار دهی میکردم
iframe = WebBrowser2.Document.getElementsByTagName("iframe"  )
iframe.contentWindow.Document.body.innerHTML = textkholase.Text

ولی الان انگار بلاگفا تغییراتی اعمال کرده نمیشه

----------


## SlowCode

سلام
اگر با Inspect Element مرورگرت ادیتور بلاگفا رو بررسی کنی، راحت میتونی ساختارش رو متوجه بشی.

الان که من بررسی کردم متوجه شدم که داخل اون iframe که آیدیش frameleft هست و شما بهش دسترسی پیدا کردی یه iframe دیگه هم هست با آیدی txtContent_ifr که داخل اون باید متنت رو بریزی.
یعنی این کد رو باید بنویسی:

iframe1 = WebBrowser2.Document.getElementsByTagName("iframe"  )
iframe2 = iframe1.contentWindow.Document.getElementsByTagNam  e("iframe")
iframe2.contentWindow.Document.body.innerHTML = textkholase.Text

vb ندارم تست کنم، ولی فکر کنم درست کار کنه.

----------


## aleas2

سلام ممنون
متاسفانه به خط دوم خطا میده 
 iframe2 = iframe1.contentWindow.Document.getElementsByTagNam  e("iframe")

----------


## SlowCode

متن خطا چیه؟
فاصله بین TagNam  e رو پاک کردی؟ باید به صورت TagName نوشته بشه.
اگر اصلاحش کردی و درستش نشد به این صورت بنویس:
set iframe2 = iframe1.contentWindow.Document.getElementsByTagNam  e("iframe")
در غیر اینصورت متن خطا رو بنویس.
فکر کنم بعد از این همه مدت، توانایی رفع این خطا رو با کمی جستجو داشته باشین :متفکر:

----------


## aleas2

بله فاصله رو که حذف کردم
والا چند وقت vb6 برنامه نویسی نکردم ولی با این حال سعی خودمو میکنم نمیدونم چرا مشکل حل نمیشه !

1.jpg

----------


## meys34

اینجا رو هم سر بزنید

https://barnamenevis.org/showthread.p...=1#post2062123


WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById( "_txtContent_editor" ).contentDocument.documentElement.innerHTML = Text1.Text

----------


## hossein161

چرا از کدهای مربوط به Iframe استفاده میکنین ؟؟
درست صفحه ارسال مطلب بلاگفا رو باز کنین و تا به راحتی به element هاش دسترسی داشته باشین
مثلا شما برین تو پنل بلاگفا رو دکمه ارسال مطلب راست کلیک کنین و دکمه open in new tab رو بزنین
کاری کنین این شکلی باز بشه اینجور به element ها دسترسی دارین

----------


## SlowCode

دلیلش اینه که محتوی ادیتور داخل Iframe نوشته میشه.
اگر ما بخواییم اون iframe رو به روش شما باز کنیم و داخل بنویسیم دیگه به دکمه ذخیره و بقیه فیلدها دسترسی نداریم! و نمیشه متن رو ذخیره کرد.
مشکل ایشون رو هم اگر اشتباه نکنم اون موقع با تیم ویور حل کردیم.

----------


## hossein161

نه من فکر کردم واسه گرفتن Element موضوع و ... گیر کردین
روش حل اینه :
باید مقدار دایو مطلب رو به یک textarea تغییر بدین!
به این صورت :


```
webbrowser1.document.GetElementById("آیدی دایوی که ادیتور توش هست").innerHTML="<textarea name=content></textarea>
```

بعد دیگه راحت میتونین value اون TextArea رو تغییر بدین
البته اون content ممکنه الان matn باشه یا چیز دیگه ای
موفق باشین

----------


## meys34

سلام

ببینید مشکلی که هست اینه که نمیشه با استفاده از *webbrowser1.document.GetElementById* به
 id مورد نظر توی Iframe دسترسی پیدا کرد...

 چون Iframe یه محیط مجزا داره و حتی میتونه آدرسش یه سایت دیگه هم باشه... 
بنابراین به دلایل امنیتی نمیشه مستقیم داخلش دسترسی داشت...

 برای رفع مشکل باید ازدستور
*WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById* استفاده کنید

درضمن تاپیک قدیمی بود بیخیال...

----------


## hossein161

با روشی که من گفتم دیگه آی فریمی در کار نیست
وقتی دایو رو طوری که دلمون میخواد تغییر بدیم دیگه جاوا اسکریپت های بلاگفا نمیتونن textarea رو پیدا کنن که آی فریم بهش وصل کنن
شما میمونی و یه textarea
بیخیال..

----------


## meys34

سلام

نمیشد بیخیال بشم...

به عکس زیر توجه کنید:





 textarea مربوط به متن ارسالی، داخل فریم شماره 2 هست...


اگر بخوایم بهش دسترسی داشته باشم باید از *.contentDocument.getElementById* استفاده کنیم... و بعدش از روش شما استفاده کنیم...


اگر هم بخوایم که کلا شماره 2 رو به روش شما تغییر بدیم همه چیز بهم میریزه و نمیشه پست ارسال کرد...

در نتیجه کد نهایی میشه این:

WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById( "_txtContent_editor" ).contentDocument.documentElement.innerhtml = Text1.Text

----------


## hossein161

باشه منم بیخیال نمیشم و باید بدون سورس ثابت کنم حرفمو  :لبخند گشاده!: 
.
.
.
.
مثل اینکه بلاگفا خرابه پس من بصورت مثال میگم برات
اول اینکه باید کاری کنی که تو فریم شماره 1 باز نشه! اگه نتونستی بگو تا بهت بگم چجوری
این از آی فریم اول
دوم اینکه باید یه کاری کنی که آی فریم دومی که تو فریم شماره 3 شما هست هم از کار بیوفته :

کد صفحه ارسال پست بلاگفا این شکلی هست :


```
<input type="text" name="title">
<div id="divcontent"><textarea name="content"></textarea></div>
<input type="text" name="tag">
<input type="submit" name="submit">
```

بلاگفا یه سری کد داره که خط دوم یعنی textarea رو تغییر میده و بجاش آی فریم میذاره . اگه قبول نداری تو صفحه ارسال پست کنترل + یو بزن ببین اصلا چیزی غیر از یه textarea میبینی ؟
و تو باید به حالت اول برگردونیش به این شکل :


```
dim aa as string
aa= "<textarea name=content></textarea>"
webbrowser1.document.GetElementById("divcontent").innerHTML=aa
webbrowser1.document.all("content").value="www.pertak.ir"
```

یاعلی

----------


## hossein161

راستی واسه درج ادامه مطلب هم باید همون کارها رو واسه textarea دوم کنی + اینکه یه input که به این صورت هست : 


```
<input type="hidden" value="0 یا 1">
```

مال اینه که بلاگفا بفهمه ادامه مطلب داره یا نه باید مقدارشو برعکس کنی الان بلاگفا قطعه نمیدونم 1 هست باید 0 کنی یا 0 هست باید 1 کنی
بعد بری کارهایی که واسه اصل مطلب کردی رو واسه textarea دوم کنی

----------


## meys34

مشکل مشابه و راه حل برای کسایی که سرچ کردن( میدونم از تاریخ تاپیک خیلی گذشته)

https://barnamenevis.org/showthread.p...=1#post2316917

----------

