OnFocus javascript命令导致Wordpress崩溃

时间:2013-07-05 21:57:52

标签: php javascript wordpress onfocus

我正在调整Wordpress主题,我正在尝试清除焦点上的搜索字段,但是当我添加以下代码时,我会看到死亡的白屏。实际的javascript函数似乎正在杀死它,因为如果我使用空的onfocus =“”命令运行这个PHP脚本,一切都很好。

    add_filter('wp_nav_menu_items','add_search_box', 10, 2);
    function add_search_box($items, $args) {
if( $args->theme_location == 'primary' ) {
    $items .= '<li id="omc-header-search">              
                    <span id="omc-search-overlay">'. __('Search', 'gonzo') .' &rarr;</span>
                    <form method="get" id="desktop-search" class="omc-search-form" action="'.get_bloginfo('url').'/">
                        <input type="text" class="omc-header-search-input-box" value="Search" onfocus="if(this.value == 'Default text') { this.value = ''; }" name="s" id="fffff">
                        <input type="submit" class="omc-header-search-button" id="searchsubmit" value="">
                    </form>
                </li>';

return $items;

}

我不知道为什么会导致整个事情崩溃。

2 个答案:

答案 0 :(得分:0)

尝试转义onfocus

中的引号
onfocus="if(this.value == \'Default text\') { this.value = \'\'; }"

当php回显时,反斜杠将消失,脚本将显示为您想要的内容。

答案 1 :(得分:0)

白页通常表示PHP致命错误或语法错误 在这种情况下,有几个不同的错误:

  • 您尚未关闭{声明中的if()
  • 您的长文本字符串嵌入了引号',未正确转义。

你在字段中的默认文本应该是不一致的。

  • 您使用"Search"
  • 将其设置为value="Search"
  • ...但只有在等于"Default text"时才会清除它。

如果您修复了PHP语法错误,并将Default text更新为Search,那么它应该可以正常工作。

像这样:

add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box($items, $args) {
    if( $args->theme_location == 'primary' ) {
        $items .= '<li id="omc-header-search">              
            <span id="omc-search-overlay">'. __('Search', 'gonzo') .' &rarr;</span>
            <form method="get" id="desktop-search" class="omc-search-form" action="'.get_bloginfo('url').'/">
            <input type="text" class="omc-header-search-input-box" value="Search" onfocus="if(this.value == \'Search\') { this.value = \'\'; }" name="s" id="fffff">
            <input type="submit" class="omc-header-search-button" id="searchsubmit" value="">
            </form>
            </li>';
    }
    return $items;
}