افزونه 1 اجرای کدهای جاوا اسکریپت در VB.net

ms_vb

Member
سلام به اساتید محترم مخصوصا جناب The_King عزیز
چطور میشه کدهای جاوا اسکریپت را در VB.net اجرا کرد؟
 

ms_vb

Member
ممنون به خاطر پاسختون
میخواهم با Api های گوگل ارتباط برقرار کنم.
به این شکل که موقعیت مکانی که روی آن کلیک میشود را به برنامه ای که نوشته ام ارسال کند.
ممنون میشم اگه بگید چطور مقادیری که از این Function برگشت داده میشه را بخونم؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ممنون به خاطر پاسختون
میخواهم با Api های گوگل ارتباط برقرار کنم.
به این شکل که موقعیت مکانی که روی آن کلیک میشود را به برنامه ای که نوشته ام ارسال کند.
ممنون میشم اگه بگید چطور مقادیری که از این Function برگشت داده میشه را بخونم؟

مقداری که InvokeScript بر می گردونه، همون مقداری ئه که توسط function شما return شده.

مشاهده پیوست JavaScriptFunction2.zip
 

ms_vb

Member
ممنون از جوابتون
راهی هست که بدون استفاده از فایل Html ای Script ها رو مستقیما اجرا کرد. (کدهای script با بقیه کدها ی برنامه Compile شه )
 

the_king

مدیرکل انجمن
ممنون از جوابتون
راهی هست که بدون استفاده از فایل Html ای Script ها رو مستقیما اجرا کرد. (کدهای script با بقیه کدها ی برنامه Compile شه )

شاید برای زبان Javascript یک موتور مفسر مستقل وجود داشته باشه، اما تا حالا کاربردی ازش در Net. ندیده ام.
محدودیت مربوط به Browser ای است که قرار کد Javascript رو اجرا کنه و به نرم افزار شما داده ای رو برگردونه. Javascript مستقیما اجرا نمیشه، یک Browser
اجرا اش می کنه و کد های Javascript هم جزئی از صفحه وب اند، نه برنامه شما. اگر نوع Application شون ASP.NET باشه، می توانید فایل HTML نداشته باشید،
چون برنامه های تحت وب ASP.NET صفحات وب Dynamic ایجاد می کنند که می تونه شامل کد های Javascript باشه، اما در برنامه های عادی شما
باید یک فایل HTML رو به مرورگر تحویل بدهید.
 

ms_vb

Member
بازهم ممنون از جوابتون
ببخشید این امکان براتون هست که مثالی رو که برام ارسال کردید رو به Asp.net تبدیل کنید؟
 

ms_vb

Member
باز هم یه سوال استاد گرامی
حالا اگه تابع مورد نظرمون که یه مقدار رو برگشت میده یه Event باشه مثلا mouseup اونوقت چطور باید مقدار برگشتیش رو دریافت کرد؟
اگه سوالم واضح نیست بگید بیشتر توضیح بدم، ممنونم از زحمات شما
 

the_king

مدیرکل انجمن
باز هم یه سوال استاد گرامی
حالا اگه تابع مورد نظرمون که یه مقدار رو برگشت میده یه Event باشه مثلا mouseup اونوقت چطور باید مقدار برگشتیش رو دریافت کرد؟
اگه سوالم واضح نیست بگید بیشتر توضیح بدم، ممنونم از زحمات شما

سوال تون واضح نیست، یه Event مثل mouseup یک روتین (Sub) ئه، مقدار بازگشتی نداره.
 

ms_vb

Member
استاد محترم
کد Java Script زیر رو ببینید
در خط 83 یک Event تعریف شده است من میخواهم با اجرای این Event مقدار فعلی Pin یا (event.getLatitude و event.getLongitude) به برنامه ارسال بشه
ممنون میشم اگه بگید چیکار کنم؟
 

پیوست ها

  • GE.txt
    3.7 کیلوبایت · بازدیدها: 4

the_king

مدیرکل انجمن
استاد محترم
کد Java Script زیر رو ببینید
در خط 83 یک Event تعریف شده است من میخواهم با اجرای این Event مقدار فعلی Pin یا (event.getLatitude و event.getLongitude) به برنامه ارسال بشه
ممنون میشم اگه بگید چیکار کنم؟

کد Java Script داخل اون function رو که می توانید عوض کنید؟ داخل (function(event شما به event دسترسی دارید می توانید دو سطر کد داخل function اضافه کنید
تا event.getLatitude و event.getLongitude داخل Element هایی روی Web Page ثبت بشه :
کد:
        document.getElementById("myLatitude").value = event.getLatitude()
        document.getElementById("myLongitude").value = event.getLongitude()

این myLatitude و myLongitude به دلیل ماهیت Element های صفحات وب، بصورت مشترک توسط Javascript و برنامه شما (یا Browser اینترنتی) قابل دسترسی اند.
کد:
<form>
	<input id="myLatitude" type="hidden" value="">
	<input id="myLongitude" type="hidden" value="">
</form>

نحوه خواندن مقدار در برنامه به نوع برنامه و نحوه ارتباط با صفحه وب بستگی داره :
کد:
        Dim latitude As Object = WebBrowser1.Document.GetElementById("myLatitude").GetAttribute("value")
        Dim longitude As Object = WebBrowser1.Document.GetElementById("myLongitude").GetAttribute("value")

کد:
        Dim latitude As Object = Request.Form("myLatitude")
        Dim longitude As Object = Request.Form("myLongitude")

در اون مثال JavaScriptFunctionWeb هم functionValue هم یک Element مخفی بود که نقش واسطه رو ایفا می کرد.
 

ms_vb

Member

دمت گرم استاد، خدا خیرت بده


فقط یه سوال دیگه
آیا میشه برنامه رو به تغییر این 2 متغیر حساس کرد؟
و به محض اینکه این دو متغیر تغییر کرد برنامه مقادیر جدید رو بگیره؟

یه سوال مهم دیگه هم دارم:
بعضی وقتها با Error جاوا اسکریپت مواجه میشم، چطور میتونم نمایش این خطا رو متوقف کنم و یا حتی اون رو مدیریت کنم؟

Error.jpg

بازهم ممنون از جوابتون
 
آخرین ویرایش:

the_king

مدیرکل انجمن

دمت گرم استاد، خدا خیرت بده


فقط یه سوال دیگه
آیا میشه برنامه رو به تغییر این 2 متغیر حساس کرد؟
و به محض اینکه این دو متغیر تغییر کرد برنامه مقادیر جدید رو بگیره؟
بله، به روش های مختلف. مثلا اگه از WebBrowser استفاده می کنید وقتی مقدار دهی Element انجام شد، عنوان document رو عوض کنید :
کد:
        document.getElementById("myLongitude").value = event.getLongitude();
        document.title=document.title+" ";

نتیجه اش بروز رخداد WebBrowser1_DocumentTitleChanged است و می توانید در اون رخداد مقدار ها رو از داخل Element مورد نظر دریافت کنید :
کد:
    Private Sub WebBrowser1_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.DocumentTitleChanged
        Dim myLongitude As Object = WebBrowser1.Document.GetElementById("myLongitude").GetAttribute("value")
    End Sub

یه سوال مهم دیگه هم دارم:
بعضی وقتها با Error جاوا اسکریپت مواجه میشم، چطور میتونم نمایش این خطا رو متوقف کنم و یا حتی اون رو مدیریت کنم؟
اول که حتما خطا رو رفع کنید، کد ایراد داره که خطا میده. اما کلا در Internet Explorer، منوی Tools، گزینه Internet Options
زبانه Advanced گزینه هایی مثل (Disable script debugging (Other و Display a notification about every script error هست.
 

جدیدترین ارسال ها

بالا