当前位置:首页 » 编程软件 » 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 16:13:37 浏览:38
php的get方法 发布:2025-02-11 16:12:30 浏览:967
源码网嘉 发布:2025-02-11 16:07:06 浏览:192
免费ftp服务软件 发布:2025-02-11 15:58:06 浏览:866
大樱桃建园为什么要配置授粉树 发布:2025-02-11 15:58:00 浏览:629
五菱宏光s顶配有哪些配置 发布:2025-02-11 15:50:57 浏览:287
华为8加128配置有哪些 发布:2025-02-11 15:48:20 浏览:580
压缩机三转子 发布:2025-02-11 15:45:54 浏览:828
linux操作系统shell 发布:2025-02-11 15:45:53 浏览:339
安卓模拟器如何选择安装 发布:2025-02-11 15:34:26 浏览:177