2

我似乎在其他任何地方都找不到这个问题,我对此感到沮丧。基本上,我已经成功地将我的设备列入白名单,并且我开始使用 Chrome 作为我的发件人开发一个简单的“Hello World”应用程序。我进去了,我localhost在 Chromecast 扩展程序中加入了白名单,并添加data-cast-api-enabled="true"到了我的发件人页面的 html 标记中。甚至似乎扩展程序正在尝试注入 API。

但是,在 Chrome 调试器中出现错误:Uncaught SyntaxError: Unexpected token ILLEGAL

我查看了网络选项卡,发现它api_script.js来自扩展程序,我什至可以在单独的选项卡中打开它。但是,由于某种原因,这个页面将这个 javascript 文件解释为......嗯,看起来是日语的。在网络选项卡中,请求的响应api_script.js是(这只是缩写):

....庆⁲惯瑳挠獡⁴籼笠ぴ挊獡⹴䅎䕍㴠∠慭瑳灁≩਻惯瑳剅䥓乏味㴠嬠ⰲ㐠㭝挊獡⹴敥映散癞牡⹴敥湵癞牡⡮摩虑敭 ੻ 桴獩椮⁤‽摩਻†桴獩渮浡⁥‽虑敭਻†桴獩椮味扡牐橯捥整⁤‽桴獩椮䅰摤敲獳㴠渠湴⴬㭽挊獍解敄泲楲湩‽畦据汤⤨笠琠桢⹳牵手抓档‽桴獩畮硥⁴‽獩琮硥⁴‽瑳䐮硥⁴‽瑳䐮硥⁴‽瑳䍮硥⁴‽瑳䍮硥⁴‽瑳䍮硥⁴‽瑳䐮硥⁴‽瑳䍮硥⁴‽瑳䐮硥⁴‽瑳䰮畡剨扨敌瑳㴠楴楶祴㴠映楴楶祴祔数敲散癞牥 ੻†桴獩愮汤癞莹呹灹 ‽捡楴楶祴祔数਻†桴獩爮捥楥敶⁲‽敲散癞牥਻†桴獩搮獥牣滟楡㴠琢楴⹳慰慲敭整获㴠渠汵㭬琠桢⹳楤捳汤敮无聊潐楬㴠∠潣瑮湩敌ਢ...

我不太确定为什么会这样。似乎将 API 代码直接复制到我的网页中是我完全可以让这个东西正常工作的唯一方法。有人对此有任何见解吗?

4

1 回答 1

3

Chromecast 将您的脚本解释为 UTF-16(作为证明,我粘贴了该垃圾并将其保存为 UTF-16-LE,并获得了一个以 开头的文本文件var cast = cast || {};)。

确保脚本上没有 BOM 标头。如果问题是由于字符集检测引起的,请尝试在开头附近的注释中添加一些扩展的 ASCII 字符,以强制字符集检测选择例如 UTF-8。

于 2013-08-02T23:10:31.850 回答