【问题标题】:How can I make a php code pop up a new window?如何让 php 代码弹出一个新窗口?
【发布时间】:2016-01-14 04:30:04
【问题描述】:

我有一个 wordpress 插件,可以让我将人们发送到一个新的 url。而不是转到同一页面上的那个 URL 并让用户离开我的网站。我想在他们访问 url 时打开一个新窗口

如何编辑此代码以打开新窗口?

  <?php
    /**
  Plugin Name: [WPJB] Application URL
   Version: 1.1
  Author: Greg Winiarski
 Description: Allows to set application URL on per job basis.
*/

// Plugin activation
register_activation_hook( __FILE__, 'wpjb_aurl_register');

function wpjb_aurl_register() {
// registers new custom field in wp_wpjb_meta table
wpjb_meta_register("job", "application_url");
}

// Plugin deactivation
register_deactivation_hook( __FILE__, 'wpjb_aurl_unregister');

function wpjb_aurl_unregister() {
// do nothing ...
}

// Adding custom fields to the form
add_filter("wpjb_form_init_job", "wpjb_aurl_init_job");
add_filter("wpja_form_init_job", "wpjb_aurl_init_job");

function wpjb_aurl_init_job($form) {

// adding new fields to the form
$e = $form->create("application_url", "text");
$e->setBuiltin(false);
$e->setLabel("Application URL");
$e->addFilter(new Daq_Filter_WP_Url);
$e->addValidator(new Daq_Validate_Url);
$e->setValue($form->getObject()->meta->application_url->value());
$form->addElement($e, "company");

return $form;
}


add_action("wpjb_front_pre_render", "wpjb_aurl_pre_render", 10, 2);

 function wpjb_aurl_pre_render($app, $file) {
 global $post_type;

try {
    $c1 = is_wpjb() && wpjb_is_routed_to("index.single");
} catch(Exception $e) {
    $c1 = false;
}
$c2 = $post_type == "job";

if(!$c1 && !$c2) {
    return;
}

$job = $app->controller->view->job;

if(!$job->meta->application_url->value()) {
    return;
}

$app->controller->view->application_url = $job->meta->application_url-    >value();

}

?>

【问题讨论】:

  • windows 在客户端(浏览器)上控制...... PHP 在服务器上运行,所以简短的回答是你不能纯粹在 PHP 中做到这一点
  • PHP 是一种服务器端语言,您无法控制客户端的窗口。但是,您可以将target='_new' 添加到链接中,因此如果有人单击它们,它们将在新窗口中打开。此外,您可以使用 jquery 并在页面加载时打开窗口。
  • 它是一个工作板,所以当我创建新工作时,它会自动创建页面。当有人查看工作时,它可以选择申请,当他们点击申请时,它会将他们带到网址那份工作.... idk 我怎么能做到这一点?
  • 本链接指南可能会有所帮助:W3 schools targets。就像 Jan 所说,您可以将 `target='_blank' 添加到您创建的链接中,以使该链接在新标签页中打开。
  • 哇...不可能做到这一点或什么?

标签: php html plugins hyperlink new-window


【解决方案1】:

您不能仅使用PHP 来做到这一点,但您可以代替重定向到新的 url echo javascript,该页面将在加载将在新窗口或选项卡中打开该 url 的页面时触发。

使用类似的东西

Echo "<script> var win = window.open(".$job->meta->application_url->value().", '_blank'); win.focus();</script>";

在你的 php 脚本中可能在你现在的位置

$app->controller->view->application_url = $job->meta->application_url->value();

【讨论】:

  • 那么正是在上面提供的这个php代码iv中,在哪里输入呢?
  • 更改了我的答案,因为我对插件不熟悉,所以猜测放置它的位置。
  • 不,你把它代替了我最后说的那一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
相关资源
最近更新 更多