首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript桥接到Flash以在flash中存储SO "cookies“

Javascript桥接到Flash以在flash中存储SO "cookies“
EN

Stack Overflow用户
提问于 2009-01-27 14:49:16
回答 4查看 4K关注 0票数 2

在问题How do I uniquely identify computers visiting my web site?上阅读了这篇文章后:

一种可能是使用闪存cookies:

无处不在的可用性(95%的访问者可能会有

flash)

对于跨浏览器共享的每个cookie (最多100 KB),您可以存储更多数据,因此更有可能唯一标识计算机清除浏览器cookie不会删除flash cookie。

你需要创建一个小的(隐藏的) flash电影来读写它们。

我试着找出是否有人已经做了这样的事情,这样我就不需要重新发明轮子了。到目前为止,除了code in the flash side之外,我还没有找到合适的搜索条件

我对此的使用是为了防止用户多次回答测验,但未来的使用可能会禁止巨魔。

有没有人知道有一个开源库可以做到这一点,并允许我通过javascript访问?

注意:我不知道flash,我也没有许可证。

编辑:您可以使用 进行编辑。这是一种邪恶的做法,但很管用。

EN

回答 4

Stack Overflow用户

发布于 2009-01-27 15:11:51

我很犹豫要不要回答你的问题,因为这听起来像是在危险地接近邪恶……而且,它注定要失败。如果你真的想阻止用户多次回答测验,你可以做的最好的事情是让他们注册一个用户帐户。如果你想阻止他们注册多个用户帐户,你可以让他们通过信用卡或蜗牛邮件进行验证,这两种解决方案通常都是站不住脚的。简而言之,互联网是匿名的。

无论如何,如果你真的想继续这个计划,你可以用Flex (Flash的一种变体)构建你的应用程序。Adobe网站上有大量的文档。其中一些是相当稀疏和恼人的,特别是集合API,但它足以满足您的目的。ActionScript ( Flash和Flex的底层编程语言)与JavaScript非常相似,也很容易学习。Flex有一个免费的SDK (通常在页面上的一个小链接中,它告诉你可以获得昂贵的Flex Builder;Flex Builder主要是一个GUI工具,而你将在没有IDE的情况下直接编写代码,只有SDK),所以许可证应该不是问题。JavaScript到闪存的桥也有很好的文档记录。

票数 1
EN

Stack Overflow用户

发布于 2016-07-05 05:21:38

BakedGoods似乎正是你需要的(或者更确切地说,是你确实需要的);它是一个Javascript库,它建立了一个统一的接口,可以用来在所有本机和一些非本机存储设施中执行常见的存储操作,包括闪存本地共享对象(您所说的“cookie”)。

有了它,创建LSO就可以通过如下代码来完成:

代码语言:javascript
复制
bakedGoods.set({
    data: [{key: "key", value: "value"}],
    storageTypes: ["flash"],
    complete: function(byStorageTypeRemovedItemKeysObj, byStorageTypeErrorObj){/*code*/}
});

检索和删除数据也同样简单。相信我,我会知道的;我是它的维护者:)

如果出于任何原因,您希望推出自己的解决方案,rmeador和ForYourOwnGood已经为您提供了足够的信息来帮助您入门。

然而,他们忘了告诉你如何做一件非常重要的事情:如何使用Javascript访问将处理共享对象的Actionscript代码。

首先,您需要将ActionScript代码封装在一个方法中,然后将该方法注册为其父应用程序的ExternalInterface的一部分:

代码语言:javascript
复制
function handleObjects(/*param1, param2, ... */):void {/*code*/}
ExternalInterface.addCallback("handleObjects");

其次,您需要编译Actionscript应用程序(代码),并在HTML中创建一个引用生成的.swf文件的元素。

然后,假设前面提到的HTML元素表示为一个名为flashDOMElement的DOMElement,您可以使用DOMElement调用您的方法:

代码语言:javascript
复制
flashDOMElement.handleSharedObjects(/*arg1, arg2, ... */);

就是这样!有几件事我们没有提到或略过,但总而言之,推出自己的解决方案并不难。然而,推出您自己的可靠解决方案则是另一回事,这也是我建议您使用BakedGoods的部分原因。

票数 1
EN

Stack Overflow用户

发布于 2010-11-22 06:40:26

对于现在正在搜索它的人,请务必查看evercookie

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/483678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档