PDA

View Full Version : وارد کردن مقدار توسط webbrowser



alidashagh
چهارشنبه 01 آبان 1392, 21:23 عصر
سلام
اول این را بگم که بخوام داخل یک Textarea توسط webbrowser مقدار وارد کنم باید با این کد مقدار وارد کنم درسته دیگه؟
WebBrowser1.document.getElementById("my id").Value = content.Text
که میدونم درسته چون توسط همین کد textarea هایی رو پر کردم ...حالا متن پایین را بخوانید .
من میخوام برای نویسنده های سایتم یه برنامه بنویسم و توسط کد :
WebBrowser1.document.getElementById("my id").Value = content.Text
مقدار را وارد میکنم (از وردپرس استفاده میکنم )
حالا هرچی با fire bug دنبال آیدی قسمت وارد کردن متن میگردم هرچی آیدی پیدا میکنم وارد میکنم ولی جواب نمیده .خودتون هم میدونید که قسمتی که برای نوشتن متن در وردپرس هست از نوع textarea هست .
من دقیقا دنبال این قسمت هستم :
http://8pic.ir/images/35582973150450717940.png
ممنون میشم دوستان که آیدی ویا Name این قسمت رو که قهمیدن و میشه توسط webbrowser مقدار وارد کرد را بگه .
((شرمنده اگر متنم را بد نوشتم چون تو فاصله 2 ساعت هی متن را ادیت میکردم))

SlowCode
چهارشنبه 01 آبان 1392, 21:31 عصر
سلام
کار نسبتا سختیه!
این ادیتور خیلی شبیه CKEditor هست. معمولا ساختار ادیتور ها اینطوره که متن نوشته شده رو داخل یه عنصر دیگه ذخیره میکنن، پس باید اونو پیدا کنی و داخل اون بنویسی.
Inspect element رو بزن بعد ببر روی ادیتور و ببین آیا این ادیتور هم از این روش استفاده کرده یا نه؟
بعد آی دی اون عنصر رو پیدا کن و تست کن ببین این روش جواب مبده یا نه؟

در ضمن واسه عنصر textarea از innerHTML استفاده کن نه value.
value واسه المنت هایی مثل input هست.

alidashagh
چهارشنبه 01 آبان 1392, 22:13 عصر
سلام
کار نسبتا سختیه!
این ادیتور خیلی شبیه CKEditor هست. معمولا ساختار ادیتور ها اینطوره که متن نوشته شده رو داخل یه عنصر دیگه ذخیره میکنن، پس باید اونو پیدا کنی و داخل اون بنویسی.
Inspect element رو بزن بعد ببر روی ادیتور و ببین آیا این ادیتور هم از این روش استفاده کرده یا نه؟
بعد آی دی اون عنصر رو پیدا کن و تست کن ببین این روش جواب مبده یا نه؟

در ضمن واسه عنصر textarea از innerHTML استفاده کن نه value.
value واسه المنت هایی مثل input هست.
سلام
ممنون مرسی من کلی آیدی را وارد کردم و یادم رفت بگم که از innerHTML هم استفاده کردم جواب نداده ... شما خودتون به وردپرس دسترسی دارید؟ اگر ندارید من دسترسی بهتون بدم خودتون زحمت بکشید .!؟

alidashagh
چهارشنبه 01 آبان 1392, 22:46 عصر
سلام

این ادیتور خیلی شبیه CKEditor هست. معمولا ساختار ادیتور ها اینطوره که متن نوشته شده رو داخل یه عنصر دیگه ذخیره میکنن، پس باید اونو پیدا کنی و داخل اون بنویسی.

محسن جان یعنی داخل یک متغیر میریزه متن را؟برم سورس اصلی فایل php رو ببینم؟ ممنون میشم راهنمایی کنی .

SlowCode
چهارشنبه 01 آبان 1392, 22:47 عصر
ویرایشگر tiymce هست و میاد داخل textarea یه iframe درست میکنه و داخل اون یه body هست با آی دی tinymce که متن داخل اون ذخیره میشه.
دسترسی به عناصر داخل iframe هم یکم فرق داره.

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

Set Iframe = WebBrowser1.Document.getElementbyID("content_ifr")
Iframe.contentWindow.Document.getElementbyID("tinymce").innerhtml = "My own Text"


---------------------------

محسن جان یعنی داخل یک متغیر میریزه متن را؟برم سورس اصلی فایل php رو ببینم؟ ممنون میشم راهنمایی کنی . نه داخل متغیر نمیریزه! یه Element تو صفحه html درست میکنه که مخفی هست بعد داخلش میریزه. مثل یه بافر میمونه.
هنوز سمت php نرفته.


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

alidashagh
چهارشنبه 01 آبان 1392, 23:14 عصر
ویرایشگر tiymce هست و میاد داخل textarea یه iframe درست میکنه و داخل اون یه body هست با آی دی tinymce که متن داخل اون ذخیره میشه.
دسترسی به عناصر داخل iframe هم یکم فرق داره.

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

Set Iframe = WebBrowser1.Document.getElementbyID("content_ifr")
Iframe.contentWindow.Document.getElementbyID("tinymce").innerhtml = "My own Text"


---------------------------
نه داخل متغیر نمیریزه! یه Element تو صفحه html درست میکنه که مخفی هست بعد داخلش میریزه. مثل یه بافر میمونه.
هنوز سمت php نرفته.


نکته: بعد ذخیره کردن این پست دیدم که سایت بین کلمه tinymce که تو خط دوم کد نوشتم یه فاصله گذاشته، خواستم بگم اون فاصله رو حذف کن.
مرسی محسن جان ولی ارور داد من کد را تو یک باتن قرار دادم ... تصویر ارور هم قرار دادم
http://8pic.ir/images/54217707563655875035.png
http://8pic.ir/images/73005709204755066934.png
ممنون میشم راهنمایی کنی

SlowCode
پنج شنبه 02 آبان 1392, 06:13 صبح
خطای کامپایل میده و اگه دقت کنی به خط تعریف تابع گیر داده!
یه دکمه دیگه درست کن و کدت رو توش بنویس.
فقط یادت باشه این دکمه وقتی باید فعال بشه که صفحه کاملا لود بشه، پس بهتره تو رویداد NavigateComplete این مورد رو بررسی کنی.

alidashagh
پنج شنبه 02 آبان 1392, 09:09 صبح
خطای کامپایل میده و اگه دقت کنی به خط تعریف تابع گیر داده!
یه دکمه دیگه درست کن و کدت رو توش بنویس.
فقط یادت باشه این دکمه وقتی باید فعال بشه که صفحه کاملا لود بشه، پس بهتره تو رویداد NavigateComplete این مورد رو بررسی کنی.
محسن جان همه این هایی که گفتی را انجام دادم ولی باز جواب نداد .راه دیگه ای هست؟

SlowCode
پنج شنبه 02 آبان 1392, 09:26 صبح
حتما یه جا اشتباه نوشتی.
اگه ممکنه پروژت رو برام بفرست تا نگاش کنم.

alidashagh
پنج شنبه 02 آبان 1392, 10:21 صبح
حتما یه جا اشتباه نوشتی.
اگه ممکنه پروژت رو برام بفرست تا نگاش کنم.
الان پ.خ میکنم... خودتون به وردپرس دسترسی دارید؟ اگر ندارید اطلاعات ورود به وردپرس هم ارسال کنم!

SlowCode
پنج شنبه 02 آبان 1392, 10:43 صبح
واسه content از این کد استفاده کن:
WebBrowser1.document.getElementById("content").Value = content.Text
کدی که تو پست 5 دادم واسه صفحه ویرایش هست، واسه نوشته تازه از این کد استفاده کن.

alidashagh
پنج شنبه 02 آبان 1392, 10:58 صبح
واسه content از این کد استفاده کن:
WebBrowser1.document.getElementById("content").Value = content.Text
کدی که تو پست 5 دادم واسه صفحه ویرایش هست، واسه نوشته تازه از این کد استفاده کن.

مرسی ممنون جواب داد .
فقط این کد در حالت (متن) کامل جواب میده و در حالت (دیداری) ایراداتی داره که زیاد مهم نیست .
منظورم از دیداری - متن در ادیتور وردپرس است که تو تصویر نشون دادم
http://8pic.ir/images/78862570822270419284.png

SlowCode
پنج شنبه 02 آبان 1392, 11:36 صبح
فکر کنم تگهای html رو درست نمیکنه. اونم طبیعیه.
چون وقتی شروع میکنی به نوشتن یه متن خودش تگ ها رو اضافه میکنه ولی تو روشی که ما استفاده میکنیم احتمالا نتونه تگ ها رو اضافه کنه.

alidashagh
پنج شنبه 02 آبان 1392, 11:45 صبح
فکر کنم تگهای html رو درست نمیکنه. اونم طبیعیه.
چون وقتی شروع میکنی به نوشتن یه متن خودش تگ ها رو اضافه میکنه ولی تو روشی که ما استفاده میکنیم احتمالا نتونه تگ ها رو اضافه کنه.
درسته اون را هم با آیدی که دارن به طور پیشفرض میزارم در حالت متن

alidashagh
پنج شنبه 02 آبان 1392, 22:16 عصر
سلام
من تو یک جا به مشکل بر خوردم که میخوام بگم اگر کلمه "رمز" تو صفحه اینترنتی موجود بود این دستورات را انجام بده
WebBrowser.document.getElementById("user_login").Value = Form1.username.Text

WebBrowser.document.getElementById("user_pass").Value = Form1.password.Text

WebBrowser.document.All.Item("wp-submit").Click

در غیر اینصورت

WebBrowser.document.getElementById("title").Value = title.Text

WebBrowser.document.getElementById("content").Value = content.Text

از instr نیز استفاده کردم ولی به مشکل بر خوردم ممنون میشم راهنمایی کنید

SlowCode
پنج شنبه 02 آبان 1392, 23:32 عصر
اینطوری بنویس:

If Len(WebBrowser.document.getElementById("user_login").Value) > 0 Then
WebBrowser.document.getElementById("user_login").Value = Form1.username.Text
WebBrowser.document.getElementById("user_pass").Value = Form1.password.Text
WebBrowser.document.All.Item("wp-submit").Click
Else
WebBrowser.document.getElementById("title").Value = Title.Text
WebBrowser.document.getElementById("content").Value = content.Text
End If

alidashagh
جمعه 03 آبان 1392, 10:34 صبح
اینطوری بنویس:

If Len(WebBrowser.document.getElementById("user_login").Value) > 0 Then
WebBrowser.document.getElementById("user_login").Value = Form1.username.Text
WebBrowser.document.getElementById("user_pass").Value = Form1.password.Text
WebBrowser.document.All.Item("wp-submit").Click
Else
WebBrowser.document.getElementById("title").Value = Title.Text
WebBrowser.document.getElementById("content").Value = content.Text
End If

مرسی
محسن جان ارور داد .با instr نمیشه انجام داد؟ تو خط اول عدد 0 تعداد حروف را مشخص میکنه؟

rezankh
جمعه 03 آبان 1392, 10:50 صبح
سلام
اگه منظورتون فقط وجود خود كلمه "رمز" هست ابتدا كدهاي html صفح رو بگيريد و سپس با دستور instr چك كنيد ببينيد در صفحه وجود داره يا خير.


Text3.Text = WebBrowser1.Document.documentElement.OuterHTMl
Ramz = Val(InStr(Text3.Text, "رمز"))

alidashagh
جمعه 03 آبان 1392, 12:29 عصر
سلام
اگه منظورتون فقط وجود خود كلمه "رمز" هست ابتدا كدهاي html صفح رو بگيريد و سپس با دستور instr چك كنيد ببينيد در صفحه وجود داره يا خير.


Text3.Text = WebBrowser1.Document.documentElement.OuterHTMl
Ramz = Val(InStr(Text3.Text, "رمز"))

اینجور هم استفاده کردم جواب نداد .

alidashagh
جمعه 03 آبان 1392, 14:52 عصر
سلام
من تو یک جا به مشکل بر خوردم که میخوام بگم اگر کلمه "رمز" تو صفحه اینترنتی موجود بود این دستورات را انجام بده
WebBrowser.document.getElementById("user_login").Value = Form1.username.Text

WebBrowser.document.getElementById("user_pass").Value = Form1.password.Text

WebBrowser.document.All.Item("wp-submit").Click

در غیر اینصورت

WebBrowser.document.getElementById("title").Value = title.Text

WebBrowser.document.getElementById("content").Value = content.Text

از instr نیز استفاده کردم ولی به مشکل بر خوردم ممنون میشم راهنمایی کنید

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