PDA

View Full Version : ارسال مطلب در بلاگفا



aleas2
یک شنبه 25 آبان 1393, 12:47 عصر
سلام خسته نباشید دوستان تو وبلاگ بلاگفا قسمت ارسال پست چطور میتونم قسمت متن و همینطور ادامه مطلب مقدار دهی کنم؟
قبلا به این صورت مقدار دهی میکردم

iframe = WebBrowser2.Document.getElementsByTagName("iframe")
iframe.contentWindow.Document.body.innerHTML = textkholase.Text

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

SlowCode
چهارشنبه 28 آبان 1393, 12:09 عصر
سلام
اگر با 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
چهارشنبه 28 آبان 1393, 14:24 عصر
سلام ممنون
متاسفانه به خط دوم خطا میده
iframe2 = iframe1.contentWindow.Document.getElementsByTagNam e("iframe")

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

aleas2
چهارشنبه 28 آبان 1393, 20:05 عصر
بله فاصله رو که حذف کردم
والا چند وقت vb6 برنامه نویسی نکردم ولی با این حال سعی خودمو میکنم نمیدونم چرا مشکل حل نمیشه !

125874

meys34
سه شنبه 04 آذر 1393, 17:09 عصر
اینجا رو هم سر بزنید

http://barnamenevis.org/showthread.php?460623-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%A8%D9%84%D8%A7%DA%AF%D9%81%D8%A7&p=2062123&viewfull=1#post2062123


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

hossein161
جمعه 01 خرداد 1394, 01:13 صبح
چرا از کدهای مربوط به Iframe استفاده میکنین ؟؟
درست صفحه ارسال مطلب بلاگفا رو باز کنین و تا به راحتی به element هاش دسترسی داشته باشین
مثلا شما برین تو پنل بلاگفا رو دکمه ارسال مطلب راست کلیک کنین و دکمه open in new tab رو بزنین
کاری کنین این شکلی باز بشه اینجور به element ها دسترسی دارین

SlowCode
جمعه 01 خرداد 1394, 11:16 صبح
دلیلش اینه که محتوی ادیتور داخل Iframe نوشته میشه.
اگر ما بخواییم اون iframe رو به روش شما باز کنیم و داخل بنویسیم دیگه به دکمه ذخیره و بقیه فیلدها دسترسی نداریم! و نمیشه متن رو ذخیره کرد.
مشکل ایشون رو هم اگر اشتباه نکنم اون موقع با تیم ویور حل کردیم.

hossein161
جمعه 01 خرداد 1394, 15:24 عصر
نه من فکر کردم واسه گرفتن Element موضوع و ... گیر کردین
روش حل اینه :
باید مقدار دایو مطلب رو به یک textarea تغییر بدین!
به این صورت :

webbrowser1.document.GetElementById("آیدی دایوی که ادیتور توش هست").innerHTML="<textarea name=content></textarea>
بعد دیگه راحت میتونین value اون TextArea رو تغییر بدین
البته اون content ممکنه الان matn باشه یا چیز دیگه ای
موفق باشین

meys34
شنبه 02 خرداد 1394, 10:56 صبح
سلام

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

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

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

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

hossein161
شنبه 02 خرداد 1394, 19:40 عصر
با روشی که من گفتم دیگه آی فریمی در کار نیست
وقتی دایو رو طوری که دلمون میخواد تغییر بدیم دیگه جاوا اسکریپت های بلاگفا نمیتونن textarea رو پیدا کنن که آی فریم بهش وصل کنن
شما میمونی و یه textarea
بیخیال..

meys34
یک شنبه 03 خرداد 1394, 11:27 صبح
سلام

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

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

http://barnamenevis.org/attachment.php?attachmentid=115903



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


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


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

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

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

hossein161
پنج شنبه 14 خرداد 1394, 14:02 عصر
باشه منم بیخیال نمیشم و باید بدون سورس ثابت کنم حرفمو :لبخند:
.
.
.
.
مثل اینکه بلاگفا خرابه پس من بصورت مثال میگم برات
اول اینکه باید کاری کنی که تو فریم شماره 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
پنج شنبه 14 خرداد 1394, 14:05 عصر
راستی واسه درج ادامه مطلب هم باید همون کارها رو واسه textarea دوم کنی + اینکه یه input که به این صورت هست :

<input type="hidden" value="0 یا 1">
مال اینه که بلاگفا بفهمه ادامه مطلب داره یا نه باید مقدارشو برعکس کنی الان بلاگفا قطعه نمیدونم 1 هست باید 0 کنی یا 0 هست باید 1 کنی
بعد بری کارهایی که واسه اصل مطلب کردی رو واسه textarea دوم کنی

meys34
شنبه 10 مهر 1395, 21:28 عصر
مشکل مشابه و راه حل برای کسایی که سرچ کردن( میدونم از تاریخ تاپیک خیلی گذشته)

http://barnamenevis.org/showthread.php?522397-%D9%BE%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-iframe-%D8%AF%D8%B1-webbrowser&p=2316917&viewfull=1#post2316917