gpt4 book ai didi

javascript - 在网站中嵌入美味的 JSON-Feed

转载 作者:行者123 更新时间:2023-12-03 12:41:31 26 4
gpt4 key购买 nike

我想将我的 sweet.com 链接嵌入到我的 CMS 驱动网站中。我试图理解 https://delicious.com/rss 上的说明但我无法理解获取链接真正需要什么,例如按我网站上的标签排序。

直到 2014 年 4 月,它都使用这样的代码:

<script type="text/javascript" src="http://feeds.delicious.com/v2/js/fachschule_gartenbau/Teichbau_allgemein?title=&amp;count=100&amp;sort=date&amp;extended"></script>

现在他们说他们将语法更改为http://feeds.delicious.com/v2/json/...

我试图用“json”替换代码中的“js”,但这不起作用。有人有想法吗?

<小时/>

实际(和旧的)代码例如:

<script type="text/javascript" src="http://feeds.delicious.com/v2/js/fachschule_gartenbau/gemüse+gemüsebau?title=&amp;count=100&amp;sort=alpha"></script>

脑子里什么都没有。

该代码不起作用。可以在 http://www.fachschule-gartenbau.de/gemuese.htm 上检查

最佳答案

参加聚会有点晚了,刚刚注意到我的标签云也被破坏了。现在,您必须自己下载 JSON,然后从中构建标签列表(或标签云)。或者,您当然也可以在服务器端用 PHP 等构建一些东西,但我假设您想坚持使用基于 JavaScript 的客户端解决方案。

步骤是:

  1. 下载 JSON。
  2. 解析 JSON。
  3. 从中构建一些东西。

要下载 JSON,我通常会使用 XMLHttpRequest() ,但由于跨站点脚本保护,这在这里不起作用。所以我只是求助于使用 HTML <script> 中的函数回调来调用 JSON API。标签(我在本例中使用了用户名delicious):

<script type="text/javascript" src="http://feeds.delicious.com/v2/json/tags/delicious?callback=printDeliciousTags"></script>

此脚本标记将处理步骤 1 和 2,然后调用 printDeliciousTags函数以 JSON 的内容作为参数,这样我们就可以从中构建一些东西。

这是一个非常基本的实现,它按字母顺序对标签进行排序并将它们打印为无序列表:

var username = "delicious";
var ignoreFiletypes = true;
var minCount = 1;
var tagURLPrefix = "http://delicious.com/" + username + "/";

function printDeliciousTags(tags)
{
var out = "";
var visibleTags;

// find all tags matching our min count and exclude filetypes as needed
visibleTags = [];
maxCount = 0;
for (tag in tags) {
if (tags.hasOwnProperty(tag)) {
if (tags[tag] > maxCount) {
maxCount = tags[tag];
}
if (
tags[tag] >= minCount &&
(!ignoreFiletypes || tag.indexOf(":") == -1)
) {
visibleTags[visibleTags.length] = tag;
}
}
}

// sort the tags alphabetically (case-insensitive)
visibleTags.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});

// print the tags
out += '<ul>';
for (var i = 0; i < visibleTags.length; i++) {
var tag;
tag = visibleTags[i];
out += '<li><a href="' + tagURLPrefix + tag + '">';
out += tag + ' (' + tags[tag] + ' bookmarks)';
out += '</a></li>';
}
out += '</ul>';
document.getElementById("deliciousPlaceholder").innerHTML = out;

基本无序列表的完整 HTML 示例:

<html>
<head>
<title>Delicious JavaScript Tag API Replacement (Basic List)</title>
</head>
<body>
<div id="deliciousPlaceholder"></div>
<script type="text/javascript">
var username = "delicious";
var ignoreFiletypes = true;
var minCount = 1;
var tagURLPrefix = "http://delicious.com/" + username + "/";

function printDeliciousTags(tags)
{
var out = "";
var visibleTags;

// find all tags matching our min count and exclude filetypes as needed
visibleTags = [];
maxCount = 0;
for (tag in tags) {
if (tags.hasOwnProperty(tag)) {
if (tags[tag] > maxCount) {
maxCount = tags[tag];
}
if (
tags[tag] >= minCount &&
(!ignoreFiletypes || tag.indexOf(":") == -1)
) {
visibleTags[visibleTags.length] = tag;
}
}
}

// sort the tags alphabetically (case-insensitive)
visibleTags.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});

// print the tags
out += '<ul>';
for (var i = 0; i < visibleTags.length; i++) {
var tag;
tag = visibleTags[i];
out += '<li><a href="' + tagURLPrefix + tag + '">';
out += tag + ' (' + tags[tag] + ' bookmarks)';
out += '</a></li>';
}
out += '</ul>';
document.getElementById("deliciousPlaceholder").innerHTML = out;
}
</script>
<script type="text/javascript" src="http://feeds.delicious.com/v2/json/tags/delicious?callback=printDeliciousTags"></script>
</body>
</html>

标签云的完整 HTML 示例:

<html>
<head>
<title>Delicious JavaScript Tag API Replacement (Tag Cloud)</title>
</head>
<body>
<div id="deliciousPlaceholder"></div>
<script type="text/javascript">
var username = "delicious";
var minFont = 14;
var maxFont = 36;
var ignoreFiletypes = true;
var minCount = 1;
var tagURLPrefix = "http://delicious.com/" + username + "/";

function printDeliciousCloud(tags)
{
var out = "";
var maxCount;
var factor;
var offset;
var visibleTags;

// find all tags matching our min count and exclude filetypes as needed
visibleTags = [];
maxCount = 0;
for (tag in tags) {
if (tags.hasOwnProperty(tag)) {
if (tags[tag] > maxCount) {
maxCount = tags[tag];
}
if (
tags[tag] >= minCount &&
(!ignoreFiletypes || tag.indexOf(":") == -1)
) {
visibleTags[visibleTags.length] = tag;
}
}
}

// sort the tags alphabetically (case-insensitive)
visibleTags.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});

// the tag cloud looks nicer if we use a logarithmic function, so fit
// one to our configured font sizes and min count
factor = (minFont - maxFont) / (Math.log(minCount) - Math.log(maxCount));
offset = maxFont - (factor * Math.log(maxCount));

// print the tag cloud
for (var i = 0; i < visibleTags.length; i++) {
var size;
var style;
var tag;
tag = visibleTags[i];
size = offset + (factor * Math.log(tags[tag]));
style = 'text-decoration:none; color:#73adff; font-size:' + size + 'px;';
out += '<a href="' + tagURLPrefix + tag + '" style="' + style + '" title="' + tags[tag] + ' bookmarks">';
out += tag;
out += '</a>&nbsp; ';
}
document.getElementById("deliciousPlaceholder").innerHTML = out;
}


</script>
<script type="text/javascript" src="http://feeds.delicious.com/v2/json/tags/delicious?callback=printDeliciousCloud"></script>
</body>
</html>

关于javascript - 在网站中嵌入美味的 JSON-Feed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23512188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com