- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在 FB Instant 文章中嵌入我自己的脚本(注入(inject)带有一些内容的 iframe)。
它似乎只适用于某些设备(例如 iPhone 5s 和 6s、LG G2),但其他设备(三星设备)似乎无法加载任何东西。
显然问题在于对脚本的 src 发出实际请求,但这只是一个假设。 (为了演示,我已经将 src 更改为 angular)。
我尝试使用 Facebook 在此处建议的工具对此进行调试:Link
我添加了我的页面示例(仅供引用,如果您将其粘贴到文章编辑器中,它会发出警告)。
注意:当我的代码直接插入到脚本标签中而没有来自某个来源的请求时,它会按预期运行。
有什么问题吗?为什么 FB Instant Articles 不调用我的脚本?
谢谢
<!doctype html><html><head><link rel="canonical" href="http://news.mywebsite.com/some-canonical-url/"/><meta charset="utf-8"/><meta property="op:generator" content="facebook-instant-articles-sdk-php"/><meta property="op:generator:version" content="1.3.0"/><meta property="op:generator:application" content="facebook-instant-articles-wp"/><meta property="op:generator:application:version" content="2.11"/><meta property="op:generator:transformer" content="facebook-instant-articles-sdk-php"/><meta property="op:generator:transformer:version" content="1.3.0"/><meta property="op:markup_version" content="v1.0"/><meta property="fb:article_style" content="default"/></head><body><article><header><figure><img src="https://www.google.co.il/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></figure><h1>js embed TEST!!!!</h1><time class="op-published" datetime="2016-06-24T13:50:14+00:00">June 24th, 1:50pm</time><time class="op-modified" datetime="2016-07-18T16:21:25+00:00">July 18th, 4:21pm</time><address><a>dev guy</a></address><h3 class="op-kicker">test kicker</h3></header><p><b>Nthi is a TEST</b></p>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker <a href="http://www.lipsum.com/">including versions of Lorem Ipsum.</a>)</p>
<h2>vine</h2>
<figure class="op-interactive">
<iframe src="https://vine.co/v/Ot2mpV1YO6F/embed/simple" width="600" height="600"></iframe>
</figure>
<h2>script tag with src</h2>
<figure class="op-interactive">
<iframe class="no-margin">
<div class="wrapper" id="111">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.js"></script>
</div>
</iframe>
</figure>
<h2>script taht injects a script tag</h2>
<figure class="op-interactive">
<iframe>
<div class="wrapper" id="222">
<script src="http://jsconsole.com/js/remote.js?762226ac-81f8-4a2a-8403-4f834c8db5de"></script>
<script>
// get parent div
var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var parentNode = scriptTag.parentNode;
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.js";
parentNode.appendChild(s);
</script>
</div>
</iframe>
</figure>
<h2>script using get req. and eval's response</h2>
<figure class="op-interactive">
<iframe>
<div class="wrapper" id="333">
<script src="http://jsconsole.com/js/remote.js?6f3e6a5a-5408-4419-8331-7a4b76f5b8bb"></script>
<script>var xmlHttp = new XMLHttpRequest();
window.stat = 2;
xmlHttp.onreadystatechange = function(state) {
window.stat = 3;
window.xmlHttp = xmlHttp;
if (xmlHttp.response && xmlHttp.readyState === 4 && xmlHttp.status === 200) {
window.stat = 5;
window.res = xmlHttp.response;
eval(xmlHttp.response);
}
else {
window.stat = 4;
}
};
xmlHttp.open("GET", "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.js", true); // true for asynchronous
xmlHttp.send(null);</script>
</div>
</iframe>
</figure>
</article></body></html>
最佳答案
我在使用 Instagram 和其他社交嵌入时遇到了同样的问题。通过 HTTPS 加载脚本为我解决了这个问题。我在 Facebook 文档中找不到任何关于 HTTPS 要求的信息。我猜浏览器/webview 正在抛出一个通用的混合内容警告。
编辑:更新这些 <scripts>
小号:
https://jsconsole.com/js/remote.js?762226ac-81f8-4a2a-8403-4f834c8db5de
https://jsconsole.com/js/remote.js?6f3e6a5a-5408-4419-8331-7a4b76f5b8bb
关于javascript - Facebook Instant Article 自定义嵌入不发出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38484674/
例如,如果一个 Instant 在其他两个 Instant 的开始和结束范围内,您想在 Kotlin 中检查,您可以简单地执行以下操作: import java.time.Instant val s
Google 即搜即得是一种新的搜索增强功能,可在您键入时显示结果。在 the information page for Google Instant ,它说“15 项新技术有助于 Google 即搜
我定义了以下模型 public class ItemDetail { private final String name; private final String id; p
游戏已启动,我收到了用户的状态,一切就绪。我正在尝试构建一个问答游戏。我正在从远程服务器获取所有信息,其中包括基于问题的图像 Assets 。我可以获取远程数据,但无法显示图像。看来 facebook
我正在尝试生成 java.time.Instant 的实例用于基于属性的测试,并使用Temporal.range几乎适用于所有 Temporal我尝试过的子类- 除了Instant ,这似乎没有提供有
时间戳将存储在数据库中。确定一个名为“b”的时间戳是否是另一个名为“a”的时间戳的后一天的解决方案是什么? 时区将作为参数提供。 例如,考虑: Instant a = Instant.ofEpochS
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我想权衡我购买其中一个或两个订阅的决定。我想得到一些数据来支持我的决定。是否可以编写一个程序来比较库?可以从 netflix 和 amazon 获得 API 吗? 最佳答案 除了 scaba 的回答之
我有一个 Instant (org.joda.time.Instant) 的实例,我在一些 api 响应中得到它。我有另一个来自 (java.time.Instant) 的实例,这是我从其他调用中获得
我正在尝试将 org.thirden.bp.LocalDate 转换为 java.util.Date,并且收到问题标题中提到的错误。 我使用以下进行转换: Date.from(currentDate.
对于我的每个用户,我存储一个 tzid我将其转换为 DateTimeZone持有有关其本地时区的信息。 我想在本地时间每天早上 8 点向用户发送一封电子邮件;如果上午 8 点由于某种原因(例如夏令时类
本文将提供如何在 Java LocalDateTime 和 Instant 之间进行转换。 LocalDateTime 表示没有时区的日期时间,例如 2019-10-25T12:15:30,而 Ins
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: How does Google Instant work? 我们经常使用谷歌搜索任何内容,但是当我们在谷歌引擎的文
我有一个设计类似于 myspace/facebook 类型社区的社交网站,我在 LAMP 设置上使用 php/mysql。 我一直想拥有自己的即时通讯工具,可以在用户的 PC 上运行,类似于 AI
我正在为我的网站开发私有(private)消息传递功能, 有没有办法从服务器获取用户收到新消息的推送通知? 我知道的唯一技术是通过 ajax 不断轮询服务器以查看是否有新消息,并在需要时重新加载信使窗
我越来越了解NodaTime并且非常喜欢它。但是我还不太了解! 给定诸如“ 2014-04-08T09:30:18Z”的值,将这样的字符串解析为NodaTime Instant所需的步骤是什么? 谢谢
这个问题已经有答案了: How to unify date format using DateTimeFormatter (4 个回答) What is the Standard way to Par
我正在尝试根据 B.C.E. 创建一个 Instant。公历年。 这是我目前所拥有的: Instant.FromDateTimeOffset(new DateTimeOffset(-1000, 10,
我已尝试获取特定时区的当前实例,但它没有按预期工作。关于如何执行此操作的任何想法? 这是我做的: Instant.now(Clock.system(ZoneId.of("America/Los_Ang
这个问题可能与另一个问题类似: HTML Comparing 2 Dates with Javascript 但我不想使用按钮,只需让它即时即可。 我有 2 个类型为 date 的输入,我想比较它们。
我是一名优秀的程序员,十分优秀!