نقل قول: ارسال مطلب در بلاگفا
سلام
اگر با 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 ندارم تست کنم، ولی فکر کنم درست کار کنه.
نقل قول: ارسال مطلب در بلاگفا
سلام ممنون
متاسفانه به خط دوم خطا میده
iframe2 = iframe1.contentWindow.Document.getElementsByTagNam e("iframe")
نقل قول: ارسال مطلب در بلاگفا
متن خطا چیه؟
فاصله بین TagNam e رو پاک کردی؟ باید به صورت TagName نوشته بشه.
اگر اصلاحش کردی و درستش نشد به این صورت بنویس:
set iframe2 = iframe1.contentWindow.Document.getElementsByTagNam e("iframe")
در غیر اینصورت متن خطا رو بنویس.
فکر کنم بعد از این همه مدت، توانایی رفع این خطا رو با کمی جستجو داشته باشین:متفکر:
1 ضمیمه
نقل قول: ارسال مطلب در بلاگفا
بله فاصله رو که حذف کردم
والا چند وقت vb6 برنامه نویسی نکردم ولی با این حال سعی خودمو میکنم نمیدونم چرا مشکل حل نمیشه !
ضمیمه 125874
نقل قول: ارسال مطلب در بلاگفا
اینجا رو هم سر بزنید
https://barnamenevis.org/showthread.p...=1#post2062123
WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById( "_txtContent_editor" ).contentDocument.documentElement.innerHTML = Text1.Text
نقل قول: ارسال مطلب در بلاگفا
چرا از کدهای مربوط به Iframe استفاده میکنین ؟؟
درست صفحه ارسال مطلب بلاگفا رو باز کنین و تا به راحتی به element هاش دسترسی داشته باشین
مثلا شما برین تو پنل بلاگفا رو دکمه ارسال مطلب راست کلیک کنین و دکمه open in new tab رو بزنین
کاری کنین این شکلی باز بشه اینجور به element ها دسترسی دارین
نقل قول: ارسال مطلب در بلاگفا
دلیلش اینه که محتوی ادیتور داخل Iframe نوشته میشه.
اگر ما بخواییم اون iframe رو به روش شما باز کنیم و داخل بنویسیم دیگه به دکمه ذخیره و بقیه فیلدها دسترسی نداریم! و نمیشه متن رو ذخیره کرد.
مشکل ایشون رو هم اگر اشتباه نکنم اون موقع با تیم ویور حل کردیم.
نقل قول: ارسال مطلب در بلاگفا
نه من فکر کردم واسه گرفتن Element موضوع و ... گیر کردین
روش حل اینه :
باید مقدار دایو مطلب رو به یک textarea تغییر بدین!
به این صورت :
کد HTML:
webbrowser1.document.GetElementById("آیدی دایوی که ادیتور توش هست").innerHTML="<textarea name=content></textarea>
بعد دیگه راحت میتونین value اون TextArea رو تغییر بدین
البته اون content ممکنه الان matn باشه یا چیز دیگه ای
موفق باشین
نقل قول: ارسال مطلب در بلاگفا
سلام
ببینید مشکلی که هست اینه که نمیشه با استفاده از webbrowser1.document.GetElementById به
id مورد نظر توی Iframe دسترسی پیدا کرد...
چون Iframe یه محیط مجزا داره و حتی میتونه آدرسش یه سایت دیگه هم باشه...
بنابراین به دلایل امنیتی نمیشه مستقیم داخلش دسترسی داشت...
برای رفع مشکل باید ازدستور
WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById استفاده کنید
درضمن تاپیک قدیمی بود بیخیال...
نقل قول: ارسال مطلب در بلاگفا
با روشی که من گفتم دیگه آی فریمی در کار نیست
وقتی دایو رو طوری که دلمون میخواد تغییر بدیم دیگه جاوا اسکریپت های بلاگفا نمیتونن textarea رو پیدا کنن که آی فریم بهش وصل کنن
شما میمونی و یه textarea
بیخیال..
نقل قول: ارسال مطلب در بلاگفا
سلام
نمیشد بیخیال بشم...
به عکس زیر توجه کنید:
https://barnamenevis.org/attachment.p...hmentid=115903
textarea مربوط به متن ارسالی، داخل فریم شماره 2 هست...
اگر بخوایم بهش دسترسی داشته باشم باید از .contentDocument.getElementById استفاده کنیم... و بعدش از روش شما استفاده کنیم...
اگر هم بخوایم که کلا شماره 2 رو به روش شما تغییر بدیم همه چیز بهم میریزه و نمیشه پست ارسال کرد...
در نتیجه کد نهایی میشه این:
WebBrowser1.Document.getElementById( "frameleft" ).contentDocument.getElementById( "_txtContent_editor" ).contentDocument.documentElement.innerhtml = Text1.Text
نقل قول: ارسال مطلب در بلاگفا
باشه منم بیخیال نمیشم و باید بدون سورس ثابت کنم حرفمو :لبخند:
.
.
.
.
مثل اینکه بلاگفا خرابه پس من بصورت مثال میگم برات
اول اینکه باید کاری کنی که تو فریم شماره 1 باز نشه! اگه نتونستی بگو تا بهت بگم چجوری
این از آی فریم اول
دوم اینکه باید یه کاری کنی که آی فریم دومی که تو فریم شماره 3 شما هست هم از کار بیوفته :
کد صفحه ارسال پست بلاگفا این شکلی هست :
کد HTML:
<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 میبینی ؟
و تو باید به حالت اول برگردونیش به این شکل :
کد HTML:
dim aa as string
aa= "<textarea name=content></textarea>"
webbrowser1.document.GetElementById("divcontent").innerHTML=aa
webbrowser1.document.all("content").value="www.pertak.ir"
یاعلی
نقل قول: ارسال مطلب در بلاگفا
راستی واسه درج ادامه مطلب هم باید همون کارها رو واسه textarea دوم کنی + اینکه یه input که به این صورت هست :
کد HTML:
<input type="hidden" value="0 یا 1">
مال اینه که بلاگفا بفهمه ادامه مطلب داره یا نه باید مقدارشو برعکس کنی الان بلاگفا قطعه نمیدونم 1 هست باید 0 کنی یا 0 هست باید 1 کنی
بعد بری کارهایی که واسه اصل مطلب کردی رو واسه textarea دوم کنی
نقل قول: ارسال مطلب در بلاگفا
مشکل مشابه و راه حل برای کسایی که سرچ کردن( میدونم از تاریخ تاپیک خیلی گذشته)
https://barnamenevis.org/showthread.p...=1#post2316917