আইই 9 তে জাভাস্ক্রিপ্ট থেকে ভিবিএস স্ক্রিপ্টে কিছুই পাস করবেন না


123

আমার ভিবিএস স্ক্রিপ্টে একটি ফ্রেমওয়ার্ক লেখা আছে। এই ফ্রেমওয়ার্কের কিছু ফাংশনের ভিতরে ফাংশনের প্যারামিটারটি নথিং ইন ইফ স্টেটমেন্টের জন্য পরীক্ষা করা হয় এবং তারপরে কিছু ক্রিয়া সম্পাদিত হয়। জাভাস্ক্রিপ্ট লিখিত ফ্রেমওয়ার্ক ব্যবহার করে যে কোড। সুতরাং কিছু ক্রিয়া সম্পাদন করতে আমার কিছুই করতে হবে না। আইই 8 এবং এর আগের সংস্করণগুলিতে পরবর্তী পদ্ধতির কাজ হয়েছিল:

<script type="text/vbscript">
    Function Test(val)
        If (IsNull(val)) Then
            Test = "Null"
        ElseIf (IsObject(val)) Then
            If (val Is Nothing) Then
                Test = "Nothing"
            End If
        End If
    End Function

    Dim jsNothing
    Set jsNothing = Nothing
    msgBox(Test(jsNothing))
    msgBox(Test(Null))
</script>


<script type="text/javascript">
    alert(Test(jsNothing));
</script>

আইই <9 9 আউটপুটটিতে: কিছুই হবে না, নাল হবে না।

আইআই 9-তে: কিছুই না, নাল, নাল।

আমি কীভাবে জাভাস্ক্রিপ্ট থেকে আইবি 9 এর ভিবিএস স্ক্রিপ্টে কোনও কিছুই পাস করতে পারি না?

দুঃখিত, আমি জানি এটি কুৎসিত, তবে আমি আটকা পড়েছি। এবং ভিবিএস স্ক্রিপ্টকে ঘৃণা করে।

সম্পাদনা: ফ্রেমওয়ার্ক ফাংশনের একটি উদাহরণ রয়েছে। আমি এটি পরিবর্তন করতে পারি না কারণ এটি প্রয়োগে ব্যাপকভাবে ব্যবহৃত হয়।

Function ExampleFunction(val)
    If (val Is Nothing) Then
        ExampleFunction = 1
    Else
        ExampleFunction = 0
    End If
End Function

হালনাগাদ

চাকরি ছেড়ে দেওয়া। একটি ভাল পাওয়া গেছে।


10
ছোট সিডেনোট: ভিবিএস স্ক্রিপ্টটিতে সংক্ষিপ্ত-প্রচারিত লজিকাল অপারেটর নেই , সুতরাং বিবৃতিটি IsObject(val) And val Is Nothingএখনও ত্রুটির ফলস্বরূপ হবে। আপনাকে এটি নেস্টেড ইফতে বিভক্ত করতে হবে।
চেরান শানমুগাভেল

এটিকে আপনার জন্য খুব স্থানীয় হিসাবে বন্ধ করে দিয়েছি। ভবিষ্যতে, আপনি কেবল আমাদের জানানোর জন্য ফ্ল্যাগ করতে পারেন :)
টিম পোস্ট

ভিবিএস স্ক্রিপ্ট এর রয়েছে এবং এছাড়াও? আমি জানি VB.Net এর আছে। যতটা খোঁড়া, কমপক্ষে এটি শর্ট সার্কিট করার অনুমতি দেবে।
vbullinger

@ ভবুলিংগার: না এটিতে অলস যুক্তি নেই। ব্লগস.এমএসডিএন / বি / এরিক্লিপার্ট / অর্চিভ / ২০০৪/০//15/184431.aspx- এরিক লিপার্টের নিবন্ধ।
মিশ্র

উত্তর:


17

দুর্ভাগ্যক্রমে, আপনি সম্ভবত এখানে আটকে আছেন - জাভাস্ক্রিপ্টের "কিছুই না" সমতুল্য নেই। আরও তথ্যের জন্য এই নিবন্ধটি দেখুন ।

[সম্পাদনা] তবে নিম্নলিখিতটি কাজ করতে পারে। আপনার ভিবিএস স্ক্রিপ্টে "গেটনথিং" নামে একটি ফাংশন তৈরি করুন যা "কিছুই না" ফিরিয়ে দেয়। আপনার জাভাস্ক্রিপ্টে "var jsNothing = getNothing ()" ব্যবহার করুন। এই নিবন্ধ থেকে আসে


4

এই প্রশ্নটি আকর্ষণীয়, আমি ভেবেছিলাম আমি এটি চেষ্টা করার চেষ্টা করব এবং এটির মজাদার জন্য উত্তর দেব।

(আরও ভাল কাজ পাওয়ার জন্য মিশ্র অভিনন্দন!)

আমার এখনই আইইয়ের অ্যাক্সেস নেই, তাই আমি এটি পরীক্ষা করতে পারছি না, তবে আপনি যদি এই জাতীয় কোনও ফাংশন লেখার চেষ্টা করেন তবে কী হবে:

<script type="text/vbscript">
  Function CallWithNulls(fn, arg1, arg2, arg3)
    If (isNull(arg1)) arg1 = Nothing
    If (isNull(arg2)) arg2 = Nothing
    If (isNull(arg3)) arg3 = Nothing
    fn(arg1, arg2, arg3)
  End Function
  Function IsNothing(arg1, arg2, arg3)
     return arg1 is Nothing
  End Function
</script>
<script type="text/javascript">
  alert(CallWithNulls(IsNothing, null, 1, 2));
</script>

অবশ্যই আমি জানি না যে ভিবি স্ক্রিপ্টের মতো কলিং ফাংশনগুলিকে মঞ্জুরি দেয় ... এবং আপনাকে আরও / কম যুক্তি দিয়ে কাজ করতে হবে।


এটি একটি সুন্দর কাজ। তবে এই প্রশ্নটি ইতিমধ্যে 3 বছর মারা গেছে। এবং আমি ভিবিএস স্ক্রিপ্টটিও মরে যেতে চাই :-) চেষ্টা করার জন্য ধন্যবাদ এবং উঁচুতে ধরা।
18-18 এ মিশ্রিত করুন

আমি সমস্যাটি সমাধান করার চেষ্টা করছিলাম না (যেহেতু আমি দেখেছি আপনি ইতিমধ্যে আরও ভাল সমাধান খুঁজে পেয়েছেন), এটি কেবল একটি আকর্ষণীয় প্রশ্ন এবং আমি ভেবেছিলাম যে আমি এটিকে ছুরিকাঘাত করব। উগ্র জন্য ধন্যবাদ!
cwhlman

ভিবিএস স্ক্রিপ্টটি স্ক্রিপ্টিং ইঞ্জিন হিসাবে অবিরত রয়েছে যা এইচপির কয়েকটি পণ্যকে ক্ষমতা দেয়, সুতরাং এটি অবশ্যই মারা যায় না। এখনো.
দ্য ব্লাস্টঅন

0

শূন্য বা এমনকী একটি নেতিবাচক সংখ্যার মতো মান ব্যবহার করুন যা আপনাকে সহজভাবে মিথ্যা মূল্যায়ন ব্যবহার করতে দেয়, তারপরে আপনাকে বিভিন্ন ব্রাউজারগুলি এবং NULLঅবজেক্টটি মূল্যায়নের ক্ষেত্রে তাদের ক্রিকগুলি নিয়ে চিন্তা করতে হবে না ।


1
উত্তরের জন্য ধন্যবাদ তবে সমস্যা কাঠামোর মধ্যে। এটি অনেক আগে লেখা হয়েছিল এবং বৃহত্তর প্রয়োগে ব্যাপকভাবে ব্যবহৃত হয় এবং আমি এটি পরিবর্তন করতে পারি না। আমি জাভাস্ক্রিপ্ট থেকে ডেকে ফ্রেমওয়ার্ক একটি ফাংশন প্রশ্নের উদাহরণ যোগ।
28:25

0

উদাহরণস্বরূপ, এর মতো কিছু কাজ করবে তবে ব্রাউজারটি আইই 11 বা তার পরে থাকলে আপনার 'মেটা' ট্যাগ লাগবে।

<HTML>
<HEAD>
<meta http-equiv="x-ua-compatible" content="IE=10">
<TITLE>Pass Javscript to VBScript</TITLE>

<script>
    var val = "null";

    window.alert("Test: " +  val);
</script>

<script type="text/vbscript">

    PassNothing(val)


    Sub PassNothing(value)
        If LCase(value) = "null" Then
            MsgBox "Java passed 'null' so VBScript = 'Nothing'"
        Else
            Msgbox "Nothing received"
        End If
    End Sub

    </script>

</HEAD>
</HTML>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.