Wordpress插件:在页面之前加载JavaScript

时间:2015-10-14 05:30:04

标签: javascript php wordpress

创建我的第一个Wordpress插件并遇到JavaScript加载问题。

我定义了一个Class,它通过wp_enqueue_script运行包含JavaScript的多个函数。

以下是展示问题的示例JS文件:

//The alert will fire
alert('javascript is firing');
// This will return an error saying 
//Cannot read property 'setAttribute' of undefined
document.getElementsByTagName("body")[0].setAttribute("ng-app", "app");

plugin.php:

<?php
/*
Plugin Name: Wordpress Plugin
Plugin URI: http://www.wordpressplugin.io
Description: A Wordpress Plugin
Author: Me
Version: 1.0
Author URI: http://www.me.com
*/

define('Wordpress Plugin', '1');

class wordpressPlugin {

function __init(){
    add_action( 'wp_enqueue_scripts', array( $this, 'angularScripts'));
}

function angularScripts(){
      wp_enqueue_script('app', plugin_dir_url( __FILE__).'js/app.js',array('jquery'), null, false);
}



//Create instance of class
$wpNG = new wordpressPlugin();
// Activate Plugin
add_action( 'init', array( $wpNG, '__init' ), 1000 );
?>

app.js

alert('hello');
document.getElementsByTagName("body")[0].setAttribute("ng-app", "app");

警报将触发,但document.getElements将无法运行并返回未定义的错误。但是,如果我将其包含在window.onload函数中,document.getElements将正常运行。做window.onload并不理想。

JavaScript如何设置才能在不需要window.onload的情况下运行?

0 个答案:

没有答案