0

Noob 在这里需要一些帮助。

我正在尝试使用此代码片段将 swf 锁定到几个域名。

var allowedDomains:String = "ghostwire.com|somewhere.net|elsewhere.org";

var allowedPattern:String = "^http(|s)://("+allowedDomains+")/";
var domainCheck:RegExp = new RegExp(allowedPattern,"i");
if (!domainCheck.test(url))
{
    // domain check failed, abort application
    stop();
    // abort();
}
else
{
    // domain okay, proceed
}

问题是即使我添加了我的网站,例如:

var allowedDomains:String = "mysite.nl|mysite.de|mysite.co.uk";

swf 使用 abort() 函数。

这可以很好地获取域 URL。但是没有办法添加多个域

var url:String = stage.loaderInfo.url;
            var goodPattern:RegExp = /^(http:\/\/)(www\.)?mysite\.nl/;
            if (goodPattern.test(url) == true)
            {
                trace("This flash is hosted on mysite");
            }
            else
            {
                trace("This flash is not hosted on mysite");
                this.alpha = 0;
            };

上面的片段有效。但后来给了我另外两个问题。1:我不能添加多个域名。2:代码混淆后,舞台被清空,所以当我尝试播放 swf 时,我得到一个调试器错误。

类型错误:错误 #1009:空对象

有人可以告诉我我在这里做错了什么!!!

原链接在这里:

PS:我是新手,这里没有禁止。我只是找不到我以前的详细信息,当试图让脚本通过电子邮件向我发送新的详细信息时,我收到一条使用电子邮件的消息,这很好,没有进入这个数据库。

所以我有一条消息提示我使用我的谷歌帐户,如果这是错误的,对不起。

希望能得到一些帮助 consern 我的线程。提前致谢

4

1 回答 1

0

在您的第二个代码中,要检查您使用略有不同的正则表达式的域,它查找“www”,也许试试这个:

var allowedDomains:String = "mysite\\.nl|mysite\\.de|mysite\\.co\\.uk";
var allowedPattern:String = "^http(|s)://(www\\.)?("+allowedDomains+")/";
于 2012-06-06T10:18:20.207 回答