- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想制作一个可以在任何网页上显示的应用程序,就像 Disqus 或 IntenseDebate 在文章和网页上的呈现方式一样。
它将显示一个迷你电子商务店面。
我不确定如何开始。这些“小部件”是否有任何示例代码、框架或设计模式?
例如,我想展示产品。我应该首先创建一个列出所有这些的网络服务或 RSS 吗?或者这些 Ajax 脚本之一可以简单地消化 XHTML 网页并显示它吗?
感谢任何提示,我真的很感激。
最佳答案
基本上您有两种选择 - 使用 iframe 来包装您的内容或使用 DOM 注入(inject)样式。
iframe 很简单 - 主机站点包含一个 iframe,其中 url 包含所有必要的参数。
<p>Check out this cool webstore:</p>
<iframe src="http://yourdomain.com/store?site_id=123"></iframe>
但这是有代价的——考虑到内容,没有简单的方法来调整 iframe 的大小。您几乎已经确定了初始尺寸。您可以想出某种跨框架脚本来测量 iframe 内容的大小,并将其转发到主机站点,主机站点根据脚本中的数字调整 iframe 的大小。但这真的很 hacky。
第二种方法是将您自己的 HTML 直接“注入(inject)”到主机页面。主机站点加载 <script>
标记来自您的服务器,脚本包含将 HTML 添加到页面的所有信息。有两种方法 - 第一种是在您的服务器中生成所有 HTML 并使用 document.write
注入(inject)它。
<p>Check out this cool webstore:</p>
<script src="http://yourdomain.com/store?site_id=123"></script>
脚本源应该是这样的
document.write('<h1>Amazing products</h1>');
document.write('<ul>');
document.write('<li><a href="http://yourdomain.com/?id=1">green car</a></li>');
document.write('<li><a href="http://yourdomain.com/?id=2">blue van</a></li>');
document.write('</ul>');
这取代了原来的 <script>
标签内含 HTML document.write
调用和注入(inject)的 HTML 是原始页面的一部分 - 因此不会像 iframe 那样出现调整大小等问题。
<p>Check out this cool webstore:</p>
<h1>Amazing products</h1>
<ul>
<li><a href="http://yourdomain.com/?id=1">green car</a></li>
<li><a href="http://yourdomain.com/?id=2">blue van</a></li>
</ul>
同样的事情的另一种方法是将数据从 HTML 中分离出来。包含的脚本将由两部分组成 - 绘图逻辑和序列化形式的数据(即 JSON)。与那种僵硬的 document.write
相比,这为脚本提供了很大的灵 active 。方法。您无需直接将 HTML 输出到页面,而是动态生成所需的 DOM 节点并将其附加到特定元素。
<p>Check out this cool webstore:</p>
<div id="store"></div>
<script src="http://yourdomain.com/store_data?site_id=123"></script>
<script src="http://yourdomain.com/generate_store"></script>
第一个脚本由数据组成,第二个脚本由绘图逻辑组成。
var store_data = [
{title: "green car", id:1},
{title: "blue van", id:2}
];
脚本应该是这样的
var store_elm = document.getElementById("store");
for(var i=0; i< store_data.length; i++){
var link = document.createElement("a");
link.href = "http://yourdomain.com/?id=" + store_elmi[i].id;
link.innerHTML = store_elmi[i].title;
store_elm.appendChild(link);
}
虽然比document.write
复杂一点, 这种方法是所有方法中最灵活的。
如果您想将某种数据发送回您的服务器,那么您可以使用脚本注入(inject)(由于同源策略,您不能使用 AJAX,但脚本注入(inject)没有限制)。这包括将所有数据放入脚本 url(请记住,IE 的 URL 长度限制为 4kB)和服务器响应所需数据。
var message = "message to the server";
var header = document.getElementsByTagName('head')[0];
var script_tag = document.createElement("script");
var url = "http://yourserver.com/msg";
script_tag.src = url+"?msg="+encodeURIComponent(message)+"&callback=alert";
header.appendChild(script_tag);
现在您的服务器收到带有 GET 参数的请求 msg=message to the server
和 callback=alert
用它做点什么,然后用
<?
$l = strlen($_GET["msg"]);
echo $_GET["callback"].'("request was $l chars");';
?>
哪个会弥补
alert("请求是 21 个字符");
如果您更改 alert
对于您自己的某种功能,您可以在网页和服务器之间传递消息。
关于javascript - 如何制作像 Disqus 或 IntenseDebate 这样的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3990167/
我想获取评论系统是 Disqus 的 CNN 上的所有评论。 例如,http://edition.cnn.com/2013/02/25/tech/innovation/google-glass-pri
如果其他人使用我的 disqus_shortname 会发生什么? 最佳答案 如果其他人在他们的网站上使用您注册的简称,他们的所有评论都会显示在您的审核面板中。 为避免这种情况,我们建议将您的域名添加
我从一个旧系统中收到了一堆评论,这些评论已成功导入到 disqus 中。现在我需要将它们连接到新系统中。这样做应该就像正确设置 disqus_identifier 一样简单。 这令人沮丧,因为评论在
我想显示所有使用 Disqus 的博客文章的 10 条最新评论,并将它们显示在侧边栏中,然后可以单击评论并转到原始帖子。 一个优点是能够从列表中删除我们自己的评论。 最佳答案 这是一个可以完成您的工作
我正在尝试使用 Disqus API 发布匿名评论,但没有成功。我正在使用具有以下设置的 Fiddler Composer: POST http://disqus.com/api/3.0/posts/
我按照说明 here ,但是,它没有任何效果。 你知道一些方法可以让评论者在他们的 DisQus 评论中使用 MathJax 吗? 最佳答案 非常same link给你答案:Disqus 现在使用 i
我想将我的 Gollum Wiki(使用 aws 和 github)用于图书项目。我想为每一章提供自己的页面,并让 friend 圈(以及任何人)留下评论。我原以为已经有十几个关于此问题的页面了。但我
我想在我的网站上将 SSO 与 Disqus 集成。 我已经设置了remote_auth_s3 和public_api_key。我可以在 threadDetails.json 查询 header 中看
我们目前的 Disqus 评论计数显示在我们主页上的每个帖子上 标签,我们看到这是由一些 javascript 更新的,它检测链接上是否存在#disqus_thread。 我们如何在标签外显示评论数?
我们目前在 内的主页上的每个帖子上都显示了我们的 Disqus 评论计数。标签,我们看到这是由一些 javascript 更新的,它检测链接上是否存在 #disqus_thread。 但是,我们如何
我已更新到 Disqus 2012,我的 CSS 覆盖不再有效,因为 Disqus 现在已加载到 iframe 中。 但是,我可以在 Disqus 线程加载后使用检查器覆盖 CSS,所以我想知道是否可
我打算在门户中使用DISQUS注释。 它通过FB,TWEETER,WOrdpress和DISQUS登录提供评论。我希望我的用户也可以发布评论,如果他们登录我的网站而不是上面的所有评论。 有可能这样做吗
在我的网站上,相同的 Disqus 线程出现在所有页面上。 我试过: var currentPageId = '/testo'; window.disqus_shortname = 'stre
我知道这似乎是一个简单的问题,但我发现没有简单的方法可以获取 ajax 页面中给定 disqus 标识符的评论计数。 我查看了他们的API,这是一个选项,但我们正在为最终用户构建一个基于ajax cm
无论我做什么,我都无法让 disqus 在开发模式下工作。 disqus账号是新的,里面没有内容。 在我的网站标题中,我有 var disqus_developer = 1; var disqus_
Disqus在网站博客上的评论似乎越来越受欢迎。与Facebook,Twitter等人的集成非常出色,这令人印象深刻。 对于那些熟悉Disqus及其API的人,是否有可能创建一个论坛/讨论组,使访问者
我想使用通用代码,但在完成最基本的功能时遇到了困难。 我想为测试创建一个简称,并为我的部署创建一个简称,这是我在 Disqus 管理面板中创建的。 这是我的显示操作中的 disqus 代码: # in
我已在我的 Wordpress 网站上加载了 Disquss,该网站在 HTTPS 上运行。问题在于,虽然评论显示在网页底部,但它们是白色的(并且由于页面的背景也是白色的,所以它们不可见)。 如果我在
我正在使用 Octopress,它使用 Disqus 进行评论。我最近从浅色方案切换到深色方案。令我惊喜的是,Disqus 设法改变了它的配色方案以融入新主题。 Disqus 如何做到这一点? 最佳答
有人成功地让 DISQUS.reset 函数适用于嵌入式线程吗?每次我尝试运行 DISQUS.reset 时,它都会说该函数未定义。在调用重置之前,我确保 javascript 文件已加载。 知道发生
我是一名优秀的程序员,十分优秀!