السلام عليكم ورحمه الله وبركاتة
اليوم الشرح عن فنكشن مهم ومعظم المبرمجين ما يدور عنوا
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
والباقي في القلب