javascript - AMP 中的随机发布 javascript
问题描述
我有这个脚本
function showLucky(root){
var feed = root.feed;
var entries = feed.entry || [];
var entry = feed.entry[0];
for (var j = 0; j < entry.link.length; ++j) {
if (entry.link[j].rel == "alternate") {
window.location = entry.link[j].href;
}
}
}
function fetchLuck(luck){
script = document.createElement('script');
script.src = '/feeds/posts/summary/-/1 to 10?start-index='+luck+'&max-results=1&alt=json-in-script&callback=showLucky';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
function readLucky(root){
var feed = root.feed;
var total = parseInt(feed.openSearch$totalResults.$t,10);
var luckyNumber = Math.floor(Math.random()*total);
luckyNumber++;
fetchLuck(luckyNumber);
}
function feelingLucky(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/feeds/posts/summary/-/1 to 10?max-results=0&alt=json-in-script&callback=readLucky';
document.getElementsByTagName('head')[0].appendChild(script);
}
//]]>
.btn_tc {
display: inline-block;
margin: 0.3em;
padding: 15px 35px;
overflow: hidden;
position: relative;
text-decoration: none;
text-transform: uppercase;
border-radius: 3px;
-webkit-transition: 0.3s;
-moz-transition: 0.3s;
-ms-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
border: none;
font-size: 15px;
text-align: center;
}
.btn_tc:hover {
box-shadow: 1px 6px 15px rgba(0, 0, 0, 0.5);
}
.green_tc {
background-color: #4CAF50;
color: white!important;
}
<a class="btn_tc green_tc" href="#random" onclick="feelingLucky()" title="Random Post">Continue</a>
哪个在正常网站上正常工作。从特定标签(标签)加载随机帖子。
我正在尝试通过这种方法将此脚本包含到 AMP 网站中:
<script async='async' custom-element='amp-script' src='https://cdn.ampproject.org/v0/amp-script-0.1.js'/>
<amp-script layout="container" src="https://mysite/random.js"></amp-script>
<a class="btn_tc green_tc" href="#random" title="Random Post">Continue</a>
显然不工作,我知道我遗漏了一些东西,但我真的不知道在哪里集中精力让它在 AMP 版本上工作。
解决方案
推荐阅读
- html - 外部尺寸确定(CSS 内部和外部尺寸模块第 3 级)
- java - 无法访问 org.jooq.TableField
- reactjs - 将 Aysnc/await 与 Props 一起使用
- django - 使用 Django Memcached 缓存 Zip 对象
- ios - 如何调试金属错误?(国际足联)
- python - PyQt5 QFileDialog setFont
- kotlin - 没有应用程序的Javafx文件选择器?(科特林)
- c# - 如何获取 Expression.Lambda
> 通用 - xml - 使用 XSLT 将所有未嵌套的 XML 元素嵌套到一个新元素中
- python - 将值放在列标题和行标题上