javascript - 从小书签加载模态窗口(如 Amazon wishlist 小书签)

标签 javascript jquery html css

我正在使用小书签加载一个 html 页面,一切都很好,但是,由于浏览器通常在外面很丑,所以看起来不那么热!

有没有办法完全无框架地加载页面?就像它的 jquery 模态版本一样,我认为在页面内是不可能的,可以这么说。

有没有一种方法可以在 document.write 命令中丢弃该页面,而将它的 js 版本放在那里?还是其他方式?

亚马逊示例:

使用以下代码创建一个小书签,以更清楚地说明我的意思 - 如果您没有帐户也没关系,您会看到效果。

javascript:(function(){var%20w=window,l=w.location,d=w.document,s=d.createElement('script'),e=encodeURIComponent,o='object',n='AUWLBookenGB',u='https://www.amazon.co.uk/wishlist/add',r='readyState',T=setTimeout,a='setAttribute',g=function(){d[r]&&d[r]!='complete'?T(g,200):!w[n]?(s[a]('charset','UTF-8'),s[a]('src',u+'.js?loc='+e(l)+'&b='+n),d.body.appendChild(s),f()):f()},f=function(){!w[n]?T(f,200):w[n].showPopover()};typeof%20s!=o?l.href=u+'?u='+e(l)+'&t='+e(d.title):g()}())

最佳答案

如果你只想显示你在另一个页面上的一些 html,你可以这样做:

var modal = document.createElement('iframe');
modal.setAttribute('src', 'http://codinghorror.com');
modal.setAttribute('scrolling', 'no'); // no scroll bars on the iframe please
modal.className = 'modal';
document.body.appendChild(modal);

一些基本样式:

.modal {
    border:0;            
    height:200px;
    position:fixed;
    right:20px;
    top:20px;
    width:200px;
    z-index:101;   
}​

当然,您应该从远程主机加载这些样式:

var c = document.createElement('link');
c.type = 'text/css';
c.rel = 'stylesheet';
c.href = '//example.com/main.css';
document.body.appendChild(c);

因此您的小书签看起来像:http://jsfiddle.net/radu/mTKHQ/ .这是本地托管的 css,因为我没有费心将它上传到任何地方。现在,这是非常准系统的,显然您可以做更多的事情。首先,您可以编写自己的 DOM 而不是使用 iFrame。您可以添加一个关闭按钮、各种事件等。在这一点上,做亚马逊所做的事情并使用脚本/样式表加载器从远程主机加载文件是有意义的,如下所示:

(function (d) {
    var s = d.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.src = '//example.com/main.js';
    d.body.appendChild(s);
    var c = d.createElement('link');
    c.type = 'text/css';
    c.rel = 'stylesheet';
    c.href = '//example.com/main.css';
    d.body.appendChild(c);
}(document));

在前面加上 javascript:,您就得到了新的书签:

javascript:(function(d){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='//example.com/main.js';d.body.appendChild(s);var c=d.createElement('link');c.type='text/css';c.rel='stylesheet';c.href='//example.com/main.css';d.body.appendChild(c);}(document));

关于javascript - 从小书签加载模态窗口(如 Amazon wishlist 小书签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11651905/

相关文章:

css - 使用 CSS,当广告在源代码中最后出现时,如何将广告推送到语义结构化的 HTML5 页面上?

javascript - 为什么函数显示为未定义

python - 如何读取jquery中的csv标题列/将列表从python填充到jquery

javascript - jQuery:从数组设置复选框值

javascript - 尝试我自己的字符串方法来删除元音

html - 单击元素跳转到下一行

javascript - 正则表达式包括所有 Intranet 站点但不包括 http(s) ://localhost

javascript - Ionic V1.3 - 选项卡 - 带条件的徽章样式 <ion-tab>

javascript - setState 不呈现(在 ftech 中获取)

javascript - 有没有办法在单击扩展程序图标时添加 HTML