1

最終的にはストリーミング ラジオの Web サイトになる Wordpress の Web サイトがあります。ヘッダーには、専用サーバーの CP からストリーミング データ (リスナー数や現在再生中など) をプルするスクリプトがあります..(Centova Cast)

function.php にスクリプトを登録しました。

これがレジスターです

wp_register_script( 'streaminfo', 'http://94.23.250.14:2199/system/streaminfo.js',false,null); wp_enqueue_script( 'streaminfo' );

これは、確認する jQuery セクション全体です。

/* ------------------------------------

:: INITIATE JQUERY / STYLING

------------------------------------ */

function init_dynscripts() {
    if (!is_admin()) {

        if ( function_exists('bp_is_blog_page')) {
            if (!bp_is_blog_page()) {
                wp_enqueue_script( 'bp-js', BP_PLUGIN_URL . '/bp-themes/bp-default/_inc/global.js', array( 'jquery' ) );
            }
        }

        wp_register_style('northvantage-style', get_bloginfo('stylesheet_url'),false,null);
        wp_enqueue_style('northvantage-style');


        if(get_option('enable_responsive')!='disable') :

        wp_register_style('northvantage-responsive', get_template_directory_uri().'/stylesheets/responsive.css',false,null);
        wp_enqueue_style('northvantage-responsive');

        endif;  

        wp_enqueue_script('jquery-ui-core',false,null);
        wp_enqueue_script('jquery-ui-tabs',false,null);
        wp_enqueue_script("jquery-ui-accordion",false,null);
        wp_enqueue_script("swfobject",false,null);
        wp_deregister_script("jquery-effects-core");

        wp_deregister_script('libertas');   
        wp_register_script('libertas',get_template_directory_uri().'/js/nv-script.pack.js',false,null);
        wp_enqueue_script('libertas');  
        wp_register_script( ’streaminfo’, 'http://94.23.250.14:2199/system/streaminfo.js',false,null);
        wp_enqueue_script( ’streaminfo’ );
        wp_register_script( ’jpie’, get_template_directory_uri().'/js/jpie.js',false,null);
        wp_enqueue_script( ’jpie’ );
        wp_register_style('jpiestyle', get_template_directory_uri().'/jpie.css',false,null);
        wp_enqueue_style('jpiestyle');


        if(get_option('jwplayer_js')) { // Check jw player javascript file is present

        $NV_jwplayer_js = get_option('jwplayer_js');

        wp_deregister_script( 'jw-player' );    
        wp_register_script( 'jw-player', $NV_jwplayer_js,false,null);
        wp_enqueue_script( 'jw-player' );       
        }
    }
}    
add_action('init', 'init_dynscripts',100);


function _remove_script_version( $src ){ // remove script version
    $parts = explode( '?', $src );
    return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

streaminfo.js と自分の Web サイトの間に競合があるようです。要素検査により、次の結果が得られます。

キャッチされていない TypeError: オブジェクト [オブジェクト ウィンドウ] のプロパティ '$' は関数ではありません

短くするために..ファイルで試したすべてが間違っていました。

ファイル内のすべての $ 記号を jQuery に変更しようとしましたが、競合は解消されましたが、他のファイルとの競合が発生しました。

追加してみました

jQuery(document).ready(function ($) {

ファイルの先頭に追加されますが、CP の他の要素が壊れます。

最終的に、簡単なテストを実行し、次のコードのみで Web ページを作成しました。

<html>
<body>
<span id="cc_strinfo_title_tranceilfm" class="cc_streaminfo"></span>
<script language="javascript" type="text/javascript" src="http://94.23.250.14:2199/system/streaminfo.js"></script>
</body>
</html>

また、ページはエラーを返しませんでした。(Google jQueryファイルへのパスを含めました)

Wordpress の何かが jQuery プラグインを台無しにしていますか? または私のコードにいくつかの文字列がありませんか?

www.tranceil.fm

4

1 に答える 1

4

jQuery.noConflict()document.ready の先頭に追加してみてください。これにより、変数のバインドが解除され、$競合が解消されます。

コメントでの議論に応えて、この質問を見た他の人を助けるために、ここに少し概要を示します。

jQuery と jQuery.noConflicts() の仕組み:

jQuery ライブラリをロードするとjQuery、「jQuery」関数を表す変数が作成されます。jQueryという名前の へのエイリアス$も作成されます。

何らかの理由で、他のいくつかの JavaScript ライブラリは$エイリアスを変更して独自の関数を表します。$これが発生すると、2 つの異なるものが変数を制御しようとしているため、競合が発生します。jQuery.noConflict() が行うことは、 との関連付けを解除$jQuery、他に使用しようとし$ているものを自由に使用できるようにすることです。

問題は、 が を$参照しないようになったことです。そのため、jQuery オブジェクトにアクセスするすべての場所で、の代わりにjQueryを使用する必要があります。jQuery$

于 2012-08-01T17:08:54.617 に答える