السلام عليكم ورحمه الله وبركاتة
 
	اليوم الشرح عن فنكشن مهم ومعظم المبرمجين ما يدور عنوا
 
                          executeBrowserJavascript
	صفحة الويكي | Wiki Page : 
 
	https://wiki.multitheftauto.com/wiki/ExecuteBrowserJavascript
 
	اولا : ما هو معني الفانكشن ؟؟
 
	html الفنكشن عبارة ينفذلك امر من لغه الجافا سكريبت علي صفحة 
 
	اكيد ما فهمت شئ بوضحلك
 
	-------------------------------------------------------------------------------------
 
	ملاحظات لاستخدام الفانكشن : 
 
	1 - اول واهم شئ انك تكون عارف شوية للجافا سكريبت
 
	2 - لا يمكنك استخدام الوظيفة الا مع الصفحات المحلية يعني مينفعش تعمل الوظيفة دي مع صفحة جوجل مثلا
 
	3 - يجب ان تعلم ان الفانكشن لا يشتغل الا علي الصفحات المحلية المعرفة في الميتا
 
 
	لنتعتبر ان اسم صفحتك
 
	call.html
 
	meta.xml اذن هنستدعيها كدا في ملف الميتا
 
<file src="call.html" />
 
	تقوم باستدعاء الصفحة داخل السكريبت حقك 
 
	( في ملف الكلنت طبعا لانوا متصفح )
 
url = "http://mta/"..getResourceName(getThisResource()).."/call.html"
	وبكدا
 
	url = رابط صفحتك ( call.html اللي هي ) 
 
 
	اولا : تنشا متصفح
 
yourBrowser = guiCreateBrowser(...)
	ثانيا : تحمل الرابط لما المتصفح يتنشا
 
addEventHandler( "onClientBrowserCreated", theBrowser, -- ايفينت عبارة عن اول ما المتصفح يتنشا يحصل الفنكشن
	function( ) -- فنكشن
		loadBrowserURL( source, url ) -- تحميل رابط الصفحة حقتنا
	end -- انهاء الفنكشن
) -- اغلاق الايفينت
	-------------------------------------------------------------------------------------
 
	بس لازم تعرف شرح الساينتكس بتاع الفنكشن
 
 
		 
	
		bool executeBrowserJavascript ( browser webBrowser, string jsCode )
	
	webBrowser : المتصفح بتاعك
	 
	jsCode : كود الجافا سكريبت بتاعك
	 
	( الوظيفة لو الارقيومنات بتاعتها صحيحة بترجعلك قيمة وهي ترو ولو العكس او حطيت متصفح فية رابط موقع غير محلي بيرجعلك فولس) : ملحوظة 
	 
	_____________________________________________________
 
	تمام كدا فهمنا الساينتكس 
 
	ونشوف شوية امثلة
 
	المثال الاول :اظهار اسم الاعب عند كتابة 1 في اف 8
 
	call.html
 
<html>
	<p id = "msg"> hello </p>
</html>
	client.lua( او ايا كان اسمة المهم انوا يكون ملف كلينت )
 
local jsCode = 'var p = document.getElementById("msg") ; p.innerHTML = "hello" + " '.. getPlayerName(localPlayer)..'"'
local screenWidth, screenHeight = guiGetScreenSize( )
local window = guiCreateWindow( 0, 0, screenWidth-200, screenHeight-300, "Web Browser", false )
local browser = guiCreateBrowser( 0, 28, screenWidth-200, screenHeight-300, true, false, false, window )
local theBrowser = guiGetBrowser( browser )
addEventHandler( "onClientBrowserCreated", theBrowser, 
	function( )
		loadBrowserURL( source, "http://mta/"..getResourceName(getThisResource()).."/call.html" )
	end
)
addCommandHandler( '1' , 
	function(  )  	
    	executeBrowserJavascript( theBrowser , jsCode )
    end
)  
	المثال الثاني : اخراج الكلام الموجود في مربع الكتابة بتاع صفحة الويب علي شات اللعبه
 
	call.html
 
<html>
	<input id='edit' ; type='text'  />			
</html>
	client.lua
 
local jsCode = [[
var editBox = document.getElementById( 'edit' )
function onPressEnter()
{
	if( event.keyCode == 13 )
	{
		mta.triggerEvent("output",editBox.value)
	}
}	
editBox.addEventListener("keypress", onPressEnter )
]]
local screenWidth, screenHeight = guiGetScreenSize( )
local window = guiCreateWindow( 0, 0, screenWidth-200, screenHeight-300, "Web Browser", false )
local browser = guiCreateBrowser( 0, 28, screenWidth-200, screenHeight-300, true, false, false, window )
local theBrowser = guiGetBrowser( browser )
addEventHandler( "onClientBrowserCreated", theBrowser, 
	function( )
		loadBrowserURL( source, "http://mta/"..getResourceName(getThisResource()).."/call.html" )		
	end
)
addEventHandler( 'onClientBrowserDocumentReady' , theBrowser , 
	function()
		executeBrowserJavascript(source,jsCode)
	end
)
addEvent( 'output' , true )
addEventHandler( 'output' , root , 
	function( msg )
		outputChatBox(msg)
	end
)
	_______________________________________________________________________________________________________
 
	المثال الثالث : عبارة عن انشاء وتغير لون الماركر من خلال صفحة ويب داخل اللعبه
 
	call.html
 
<html>
	<p id = "msg"></p>
	<script>
		function func()
		{
			var c = event.keyCode			
			if( c != 44 && c != 45 )				
			{
				if( c < 48 || c > 57 )				
				{
					event.returnValue = false					
				}
			}
			if( c == 13 )
			{
				mta.triggerEvent( 'createMarker' , document.getElementById("edit_Box").value )
			}
		}
		
		function func2()
		{
			var c = event.keyCode			
			if( c != 44 ) 
			{					
				if( c < 48 || c > 57 )				
				{
					event.returnValue = false	
				}
			}
			if( c == 13 )
			{
				mta.triggerEvent( 'changeMarker' , document.getElementById("color_Box").value )
			}
		}
		
	</script>
	<strong><em>Enter Marker Position Here !! : </em></strong><input id = "edit_Box" style = "color:red" ; type = 'text' size = "50" onkeypress = "func()"> </input>	
	<hr>
	<p id = "msg2"></p>
	<strong><em>Enter Marker Color Here !! : </em></strong><input id = "color_Box" style = "color:orange" ; type = 'text' size = "50" onkeypress = "func2()"> </input>	
</html>
	client.lua
 
local screenWidth, screenHeight = guiGetScreenSize( )
local window = guiCreateWindow( 136, 131, 824, 468, "Web Browser", false )
local browser = guiCreateBrowser( 0, 28, screenWidth-200, screenHeight-300, true, false, false, window )
local theBrowser = guiGetBrowser( browser )
guiSetVisible( window , not guiGetVisible(window) )
visible = guiGetVisible(window)
showCursor(visible)
guiSetInputEnabled(visible)
_Markers = { }
addEventHandler( "onClientBrowserCreated", theBrowser, 
	function( )
		loadBrowserURL( source, "http://mta/"..getResourceName(getThisResource()).."/call.html" )
	end
)
setDevelopmentMode(true,true)
addEvent( 'createMarker' , true )
addEventHandler( 'createMarker' , root , 
	function( position )		
		if( #position == 0 ) then
			executeBrowserJavascript( theBrowser , 'document.getElementById("msg").innerHTML = "<b><i><u>يرجي كتابة احداثيات الماركر</u></i></b>" ; document.getElementById("msg").style.color="red"' )
			if( isTimer( ti ) ) then
				killTimer( ti )
			end
			ti = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg").innerHTML = "" ; document' )
			return
		end
		local pos = split( position , ',' )
		mark = createMarker( pos[1] , pos[2] , pos[3] , 'cylinder' , 1 )
		if( isElement(mark) and getElementType(mark)=='marker' ) then
			if( type( pos ) == 'table' and #pos == 3 ) then
				executeBrowserJavascript( theBrowser , 'document.getElementById("msg").innerHTML = "<b><i><u>تم انشاء الماركر بنجاح</u></i></b>" ; document.getElementById("msg").style.color="green"' )
				if( isTimer( ti ) ) then
				killTimer( ti )
				end
				ti = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg").innerHTML = "" ; document' )			
				_Markers[#_Markers+1] = mark
			else
				executeBrowserJavascript( theBrowser , 'document.getElementById("msg").innerHTML = "<b><i><u>يرجي كتابة احداثيات صحيحة</u></i></b>" ; document.getElementById("msg").style.color="red"' )
				if( isTimer( ti ) ) then
					killTimer( ti )
				end
				ti = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg").innerHTML = "" ; document' )
				return
			end
		else
			executeBrowserJavascript( theBrowser , 'document.getElementById("msg").innerHTML = "<b><i><u>يرجي كتابة احداثيات صحيحة</u></i></b>" ; document.getElementById("msg").style.color="red"' )
			if( isTimer( ti ) ) then
				killTimer( ti )
			end
			ti = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg").innerHTML = "" ; document' )
			return
		end
	end
)
addEvent('changeMarker',true)
addEventHandler( 'changeMarker' , root , 
	function( color )
		if( #color == 0 ) then
			executeBrowserJavascript( theBrowser , 'document.getElementById("msg2").innerHTML = "<b><i><u>يرجي كتابة لون الماركر</u></i></b>" ; document.getElementById("msg2").style.color="red"' )
			if( isTimer( t2 ) ) then
				killTimer( t2 )
			end
			t2 = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg2").innerHTML = "" ; document' )
			return
		end
		RGB = split(color,',')
		if( _Markers[#_Markers] and isElement( _Markers[#_Markers] ) and getElementType( _Markers[#_Markers] ) == 'marker' ) then
			if( type( RGB ) == 'table' and #RGB == 3 and tonumber(RGB[1])<=255 and tonumber(RGB[1])>=0 and tonumber(RGB[2])<=255 and tonumber(RGB[2])>=0 and tonumber(RGB[3])<=255 and tonumber(RGB[3])>=0 ) then
				executeBrowserJavascript( theBrowser , 'document.getElementById("msg2").innerHTML = "<b><i><u>تم تغيير لون الماركر بنجاح</u></i></b>" ; document.getElementById("msg2").style.color="green"' )
				setMarkerColor( _Markers[#_Markers] , RGB[1] , RGB[2] , RGB[3] )
				if( isTimer( t2 ) ) then
					killTimer( t2 )
				end
				t2 = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg2").innerHTML = "" ; document' )
				return
			else
				executeBrowserJavascript( theBrowser , 'document.getElementById("msg2").innerHTML = "<b><i><u>يرجي التأكد من البيانات</u></i></b>" ; document.getElementById("msg2").style.color="red"' )
				if( isTimer( t2 ) ) then
					killTimer( t2 )
				end
				t2 = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg2").innerHTML = "" ; document' )
				return
			end
		else
			executeBrowserJavascript( theBrowser , 'document.getElementById("msg2").innerHTML = "<b><i><u>قم بأنشاء المأركر اولأ</u></i></b>" ; document.getElementById("msg2").style.color="red"' )
			if( isTimer( t2 ) ) then
				killTimer( t2 )
			end
			t2 = setTimer( executeBrowserJavascript , 2000 , 1 , theBrowser , 'document.getElementById("msg2").innerHTML = "" ; document' )
			return
		end
	end
)
			
		
bindKey( 'f7' , 'down' , 
	function(  )
		guiSetVisible( window , not guiGetVisible(window) )
		visible = guiGetVisible(window)
		showCursor(visible)
		guiSetInputEnabled(visible)
	end
)
addCommandHandler( '1' , 
	function(  )
		local x , y , z = getElementPosition( localPlayer )
		setClipboard( x..','..y..','..z )
	end
)
addCommandHandler( '2' , 
	function( )
		if( _Markers[#_Markers] and isElement( _Markers[#_Markers] ) and getElementType( _Markers[#_Markers] ) == 'marker' ) then
			destroyElement( _Markers[#_Markers] )
			_Markers[#_Markers] = nil
			local just = {  }
			for i , data in pairs( _Markers ) do
				if( data ) then
					table.insert( just , data )
				end
			end
			_Markers = just
			data = nil ; just = nil
		end
	end
)
	_______________________________________________________________________________________________________
 
	
		    
	 
	>> { لأي استفسار تفضل في التعليقات في الاسفل } <<
 
	____________________________________
 
	المصادر 
	____________________________________
 
	https://wiki.multitheftauto.com/wiki/ExecuteBrowserJavascript
 
	https://www.w3schools.com/js/
 
	https://wiki.multitheftauto.com/wiki/OnClientBrowserDocumentReady
 
	https://wiki.multitheftauto.com/wiki/OnClientBrowserCreated
 
	______________________________________________
 
	من قاموا بمساعدتي
 
	Who helped me
 
	______________________________________________
 
	@IIYAMA
 
	@botder
 
	______________________________________________
 
	الاهداءات
 
	@Master_MTA
 
	@!#DesTroyeR_,)
 
	@Default#^
 
	@#,xiRocKyz
 
	@NX_CI
 
	@TOUNSI | ا̍ڸــڛۣــ؏ــٰٱ̍دہ
 
	@DABL
 
	@Kareem Amer
 
	والباقي في القلب