是否可以使用Java脚本在没有ExternalInterface的情况下单击/获取ActionScript值/动作?

GreaseMonkey是如何工作的?我可以使用GreaseMonkey做到吗?

最佳答案

怎么样

swf=document.embeds[0];//or 1 or 2 etc
swfvar1=swf.GetVariable("swfvariable");
swfvar2="something";
swf.SetVariable("swfvariable",swfvar2);


它的
    GetVariable(“ swfvar”);
以var名称作为字符串

    SetVariable(“ swfvar”,jsval);
使用swfvar名称作为字符串,并且js值随心所欲

执行功能,有两种方法
1.将以上代码与var swf结合使用,
    swf.SwfFunc(params);
简单吧?是。

2.再次使用上面的代码
    swf.GetVariable(“ SwfFunc(params)”);
因为它获取函数的值,所以它全部执行以寻找返回值,如果参数丑陋且带有引号重叠,则可能会很糟糕,因为调用中已经有引号

我个人喜欢方法2,因为它也可以用于其他目的,例如执行代码。像这样

swf.GetVariable("
function(){
//whatever
}");


我觉得这很有用,但请记住您必须在该函数中转义引号
实际上就像注入一个eval语句,但是更好

10-06 00:52