我正在尝试创建一个书签,这样当您单击它时,它将在 div 框中加载 example.com/yourdata.php。
如何让它从 example.com 获取数据?
框架?还是有更好的解决方案?
我正在尝试创建一个书签,这样当您单击它时,它将在 div 框中加载 example.com/yourdata.php。
如何让它从 example.com 获取数据?
框架?还是有更好的解决方案?
在另一个页面中创建从不同域获取数据的小书签(以加载到<div />
使用 Ajax 中)时,您可能会遇到问题。
您最好的选择可能是插入一个 IFrame,并将内容作为页面的源。
如果你想把它作为一个非常基本的灯箱来做,你可以这样做:
(function() {
var iFrame = document.createElement('IFRAME');
iFrame.src = 'http://google.com';
iFrame.style.cssText = 'display: block; position:absolute; '
+ 'top: 10%; left: 25%; width: 50%; height: 50%';
document.body.insertBefore(iFrame, document.body.firstChild);
})();
这是书签格式的相同代码:
javascript: (function() { var iFrame = document.createElement('IFRAME'); iFrame.src = 'http://google.com'; iFrame.style.cssText = 'display: block; position:absolute; top: 10%; left: 25%; width: 50%; height: 50%'; document.body.insertBefore(iFrame, document.body.firstChild); })();
如果你想要漂亮的东西,你也可以把它设计得更多。这只是可能的一个基本示例。正如另一个人所说,最简单的方法是使用 Ajax 请求加载 jQuery,但这会更复杂一些。
直接在您的书签中执行 AJAX 调用,然后将您的 div 的 innerHTML 设置为返回的内容。不确定这是否有安全限制。
编辑:您不想使用 JQuery,因为您不能轻松地从书签加载 javascript 库。(虽然也许你可以通过 AJAX 得到它然后评估它......)
你需要做一个经典的XMLHttpRequest。
更多信息在这里。
使用Dojo 工具包,您可以使用dijit.layout.ContentPane或dojox.layout.ContentPane在一个 div 中完全执行您想要的操作。
dijit.layout.ContentPane 和 dojox.layout.ContentPane 之间的区别在于您可以在 dojox.layout.ContentPane 中运行内联 javascript。
我通过在我的服务器上创建一个在另一个域上输出页面的 php 函数来绕过域限制。这样,当我调用 ajax.updater 时,javascript 认为它在同一个域中。
$sSrcPage = $_REQUEST['SrcPage'];
echo file_get_contents($sSrcPage, 0);