當前位置:首頁 » 編程軟體 » c執行js腳本

c執行js腳本

發布時間: 2022-09-01 14:28:48

⑴ C#如何執行js腳本傳遞過來的function

微軟的程序員已經給我們寫了這樣一個操作script的com介面,那就是MS SCRIPT CONTROL
顧名思義,他能執行腳本語言,呵呵,確實,他能做到。
通過添加引用MS SCRIPT CONTROL 的com介面
然後創建對象
MSScriptControl.ScriptControlClass scc = new MSScriptControl.ScriptControlClass();
設定scc.Language = "javascript";
scc.Eval("var w=10;var t=2; p=w/t;");最後他返回p的值;

⑵ C# .net中 如何調用js腳本文件

很簡單,
比如你有個GetUserData()js函數,在asp.net內調用用
RegisterStarupScript("<script>GetUser();</script>")方法

後台使用
Page.RegisterStartupScript("aa","<script language=javascript>test();</script>");
的好處在於

編譯器是把腳本寫在生成html的body或form標簽之內的,會出現這樣的效果:

頁面內容顯示完畢 再運行腳本

===》區別於

Response.Write("<script language=javascript>test();</script>");

客戶端會先運行腳本,後決定是否顯示body內容

但是,如果aspx文件內沒有runat=server的Form ,則Page.RegisterStartupScript方法沒有任何影響,也即無效

⑶ VC++ 如何執行腳本

1. 導入庫 ,該指令一般加在 stdafx.h 中
#import "msscript.ocx" no_namespace
2. 創建腳本對象//腳本引擎IScriptControlPtr m_pScript;
m_pScript.CreateInstance(__uuidof(ScriptControl));
m_pScript-Timeout = 1000 * nTimeout;//超時設置
m_pScript-PutAllowUI( VARIANT_FALSE );
m_pScript-PutLanguage( _bstr_t(_T("JScript")) );
3. 讀取腳本文件
wstring js = read_file("c:/1.js");//read_file 函數此處略去
4. 增加代碼並執行//增加代碼m_pScript-AddCode( _bstr_t(js.c_str()));
//執行代碼(1.js 中有 main 函數)
m_pScript-(_bstr_t(_T("main()")));
至於腳本和VC的交互,可以通過創建 com 組件來實現,在 vc 工程中,增加一個 com 組件,比如 IVREngine,然後添加方法,在執行腳本前,把該對象增加到腳本引擎中,代碼如下://輔助對象CComPtr<IIVREnginepIVREngine;
pIVREngine.CoCreateInstance(__uuidof(IVREngine));
m_pScript-AddObject( _bstr_t("IVR"), pIVREngine, VARIANT_TRUE );
這時,在腳本(1.js)中,就可以直接調用 IIVREngine 提供的方法了,比如 IVR.PlayFile("c:/1.wav");注意已有相應的類CScriptObject
BOOL CScriptDemoApp::InitInstance(){// Initialize COM

⑷ 在C++中怎麼調用一個js中的方法

例如一個test.js內容如下:
function main( input )
{
return input;
}
在C++中調用方法如下:
// vcJscript.cpp : 定義控制台應用程序的入口點。
//
#include "stdafx.h"
#import "C:/windows/system32/msscript.ocx" // msscript.ocx
using namespace MSScriptControl;
#include <fstream>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL);
IScriptControlPtr pScriptControl(__uuidof(ScriptControl));
pScriptControl->Language = "JavaScript";
//pScriptControl->AllowUI = TRUE;
fstream file;
file.open( "test.js" );
string strFileContent, strTemp;
char szTemp[1024]="";

do
{
file.read(szTemp, 1024);
strFileContent.append( szTemp );
memset( szTemp, 0, 1024 );
}
while ( !file.fail() );
file.close();
pScriptControl->AddCode(strFileContent.c_str());
VARIANT A = pScriptControl->Eval("main(4);");
int iRet = A.intVal;
return 0;
}
腳本控制項有四種方法。其中之一是 Run(),運行子常式或函數。在調用此方法之前,指定的腳本語言、 設置 AllowUI,並將下面的腳本添加到腳本控制項:
//---------------------- Begin ---------------------------

#include <stdio.h>
#import "C:/winnt/system32/msscript.ocx" // msscript.ocx
using namespace MSScriptControl;

int main(void)
{
HRESULT hr = CoInitialize(NULL);

IScriptControlPtr pScriptControl(__uuidof(ScriptControl));

// Create a VARIANT array of VARIANTs which hold BSTRs
LPSAFEARRAY psa;
SAFEARRAYBOUND rgsabound[] = { 3, 0 }; // 3 elements, 0-based
int i;

psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
if (!psa)
{
return E_OUTOFMEMORY;
}

VARIANT vFlavors[3];
for (i = 0; i < 3; i++)
{
VariantInit(&vFlavors[i]);
V_VT(&vFlavors[i]) = VT_BSTR;
}

V_BSTR(&vFlavors[0]) = SysAllocString(OLESTR("Vanilla"));
V_BSTR(&vFlavors[1]) = SysAllocString(OLESTR("Chocolate"));
V_BSTR(&vFlavors[2]) = SysAllocString(OLESTR("Espresso Chip"));

long lZero = 0;
long lOne = 1;
long lTwo = 2;

// Put Elements to the SafeArray:
hr = SafeArrayPutElement(psa, &lZero,&vFlavors[0]);
hr = SafeArrayPutElement(psa, &lOne,&vFlavors[1]);
hr = SafeArrayPutElement(psa, &lTwo,&vFlavors[2]);

// Free Elements from the SafeArray:
for(i=0;i<3;i++)
{
SysFreeString(vFlavors[i].bstrVal);
}

// Set up Script control properties
pScriptControl->Language = "JScript";
pScriptControl->AllowUI = TRUE;
pScriptControl->AddCode(
"function MyStringFunction(Argu1,Argu2,Argu3)/
{ return /"hi there/" ;}" );

// Call MyStringFunction with the two args:
_variant_t outpar = pScriptControl->Run("MyStringFunction", &psa);

// Convert VARIANT to C string:
_bstr_t bstrReturn = (_bstr_t)outpar;
char *pResult = (char *)bstrReturn;

// Print the result out:
printf("func=%s/n",pResult);

// Clean up:
SafeArrayDestroy(psa);

CoUninitialize();
return(0);
}

⑸ 在JSP c:for 循環中 用JS腳本怎麼獲得循環中一個div的id

可以c:forEach中將生成的div id寫到一個js的數組中,之後在頁面用js訪問這個數組即可

或者用生成的div的別的特徵來選到這個div再獲取他的id,比如class屬性。可以讓生成的div使用同已前綴或者後綴的來區分於其他div。

如果生成的div的id是可以在c:forEach中控制的,可以用例如myDiv_1,myDiv_2這樣的來定義,然後在頁面用JS按照約定直接getElementById("myDiv_" + i);獲取到。

⑹ 如何在C++中調用javascript中的函數

v8 是google 的js 開源引擎, 想實現這種功能, 建議直接在你工程裡面加v8吧, 然後直接用v8調這段 js代碼,

⑺ JS腳本怎麼運行

常見的執行js代碼都是放入到HTML引入後,然後通過HTML文件來執行胡查看代碼。顯然這是比較麻煩的事情,如果電腦裡面安裝了node.js,可以使用node來直接使用node來運行想要運行的js文件。

<html>

<body>

<script language="javascript">

function Card(owner,rate)

{

this.Owner=owner;

this.Rate=rate;

}

var mycard = new Card("X","150");

document.write("name:"+mycard.Owner+"speed:"+mycard.Rate);

</script>

</body>

</html>

(7)c執行js腳本擴展閱讀:

JavaScript語言中採用的是弱類型的變數類型,對使用的數據類型未做出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。

腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。

⑻ c#怎麼調用js腳本

有三種方法,請自行選用

開源項目 Javascript .NET

地址:http://javascriptdotnet.codeplex.com/它是Google Chrome V8引擎在.NET上的封裝,功能完善,性能相對較高

使用Interop.MSScriptControl.dll 控制項。

MSScriptControl.ScriptControlClasssc=newMSScriptControl.ScriptControlClass();
sc.Language="javascript";
objectobj=sc.Eval("1+2*(3+4)");
Console.WriteLine(obj);

利用Microsoft.JScript.Vsa

添加Microsoft.JScript、Microsoft.Vsa二個程序集的引用


如滿意,請採納,謝謝。

熱點內容
安卓怎麼看蘋果手機的行駛軌跡 發布:2025-02-11 09:26:19 瀏覽:884
h板電影種子ftp 發布:2025-02-11 09:06:10 瀏覽:738
c語言數據類型定義 發布:2025-02-11 09:00:38 瀏覽:237
一個小時如何選擇伺服器 發布:2025-02-11 08:58:14 瀏覽:442
網易我的世界伺服器推薦國服 發布:2025-02-11 08:56:34 瀏覽:241
電視父母鎖屏密碼應該會是什麼 發布:2025-02-11 08:36:42 瀏覽:892
梅花適合用哪些植物進行配置 發布:2025-02-11 08:30:54 瀏覽:252
安卓手機如何像蘋果一樣彈窗 發布:2025-02-11 08:26:33 瀏覽:912
壓縮文件掃碼 發布:2025-02-11 08:20:55 瀏覽:258
小米5安卓70怎麼分屏 發布:2025-02-11 08:00:58 瀏覽:140