2

我正在构建一个 Wordpress 插件,以向从招聘平台 API 中提取的用户显示工作列表。单击工作时,会向 API 发送一个 cURL 请求,该 API 将工作详细信息作为一个完整的 HTML 页面(在线工作广告)拉取。在提取 HTML 方面,我的一切工作正常,但我不知道如何向用户显示它。

我怎么能:

  • 打开一个新选项卡以显示从 AJAX 请求中提取的 HTML

    或者

  • 在同一页面上的 div 中打开完整的 HTML(即模式)

我更愿意在新页面中打开 HTML,但不知道如何使用 jQuery 来执行此操作......在模式页面中打开也很好,但据我了解 iFrames(我宁愿无论如何都不要使用),你必须传递一个网址(我只是有完整的标记)。有没有办法在页面中显示它,也许使用画布?它带有自己的指向 CSS 和 Javascript 的链接,这些链接只需要在该子页面中应用。

编辑:

作为澄清,我知道我可以简单地将 HTML 放在页面中。我的问题是它是一整页。这意味着它有一个<head> <body>, 和它自己的 CSS 链接。只是将它放在页面中会与 CSS 的其余部分混淆并产生无效的 HTML。

这是我已经拥有的:

$.post(ajaxurl, data, function(response) {
    $('.sg-jobad-full').html(response);
});

<body>它将响应完美地放置在页面中......但它通过在 a<body>和竞争 CSS 中引入 a 来弄乱页面。

4

2 回答 2

2

<div>如果您将响应放在<body>.

如果有一种方法可以在没有标记的情况下检索数据,您可以解析数据并让它通过 javascript 打印,这是我更喜欢的方法。

根据您的评论,您真的应该使用iframes,所有其他方法都会更改您的标记以<html>在其中包含标签<html>,这是非常糟糕的做法。 iframe 可以<div>元素一样设置样式,并且将iframe 用于您提到的目的确实不脏(不会从外国主机加载,它不是隐藏的,它不跟踪

<iframe class="job-offers-plugin" src=".../wp-content/plugins/yourplugin/getJobs.php">
</iframe>

把一些风格放进去,width;height;padding;margin;overflow;把它放在你喜欢的地方。

这可以帮助您使用数据库

在独立脚本中使用 WPDB?

永久链接添加到您的插件脚本:

http://teachingyou.net/wordpress/wordpress-how-to-create-custom-permalinks-to-use-in-your-plugins-the-easy-way/

于 2013-07-15T13:19:12.867 回答
0

如果您在 jQuery.ajax(...) 调用中获得完整的 HTML,则始终可以将其显示在页面上的某个 div 中。

$.ajax({
   success: function (resp){
       // resp should be your html code
       $("#div").html(resp);
   }
});

您可以在任何地方使用$(selector).html(htmlCode)。您可以将其插入模态框、div、新页面...

如果您必须注入整个 HTML 页面,您可以:去除 不需要的标签使用 iframe 并将内容写入该 iframe: 如何将 HTML 内容设置为 iframe

iframe 不是我最喜欢的东西……但有可能

于 2013-07-15T13:22:26.860 回答