【问题标题】:Proof of concept loading php files via javascript通过 javascript 加载 php 文件的概念证明
【发布时间】:2018-04-17 22:40:37
【问题描述】:

这是我所知道的: PHP是服务器端,js是客户端。 我不能使用 Js 来更改 PHP 变量,因为我在上面的行中写了但是 onLoad 如果(例如)页面加载到 iFrame 中,我可以包含一个文件或另一个文件吗? (是的,我的服务器允许 x-frame SAMEORIGIN)我也知道我不能使用 get_stylesheet_directory_uri() 来设置这个文件的 url。

我知道我可以使用:

<script>
    if (window.frameElement) {
        // in frame
    }
    else {
        // not in frame
    }
</script>

要检查我的页面是否加载到 iFrame 中,但我就像 Jon Snow,我什么都不知道。

我也读过这个:

function my_enqueue_assets() {
    wp_localize_script( 'ajax-pagination', 'ajaxpagination', array(
        'ajaxurl' => admin_url( 'admin-ajax.php' )
    ));
}

我可以通过某种方式“浏览”我的文件夹,对吗? 如何打包所有东西以包含在内? 谢谢。

现在尝试解释更多我想在这里实现的是一些“伪代码”(我知道我混合了 js 和 PHP,它不能像这样工作)。

<script>
if (window.frameElement) {
    <?php get_template_part('template-parts/header/iframe','page');?>
}
else {
    <?php get_template_part('template-parts/header/notiframe','page');?>
}

【问题讨论】:

  • 你想达到什么目的?
  • 我需要使用 javascript 来检查页面是否加载到 iFrame 中。如果它在 iFrame 中,则必须包含一个 php 文件,如果不是,则必须包含一个不同的文件。
  • 用 js 检测,对 php 文件进行 ajax 调用,将根据 php 文件的作用工作
  • 实际上我已经通过一种解决方法解决了我的问题,而无需使用 JS。我该怎么办?我要删除这个问题吗?

标签: javascript php include onload


【解决方案1】:

其实不用js我就解决了这个问题。 我在创建永久链接的地方添加了这个:

<a href="<?php echo esc_url( add_query_arg( 'access_method', 'iframe', get_permalink() ) );?>" class="iframe" title="<?php the_title();?>"">

然后在页面顶部设置一个变量:

<?php $iframechecker = ( isset($_GET["access_method"]) && trim($_GET["access_method"]) == 'iframe' ) ?true : false;?>

然后我检查它是否设置:

<?php if (($iframechecker === true)){;?>//do stuff<?php }else{;?>//do other stuff<?php };?>

希望这对将来的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多