首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Onclick事件转换为页面加载事件

将Onclick事件转换为页面加载事件
EN

Stack Overflow用户
提问于 2016-01-13 17:58:41
回答 4查看 2K关注 0票数 1

我在我的wordpress网站上使用Gtranslate plugin进行翻译。该插件生成了一个脚本,我将其附加在header.php中。当我尝试重新加载一个页面时,默认情况下它以英语显示(没有翻译)。当我点击顶部的Finnish时,它切换到了芬兰语。我想我的网站是只在芬兰语,所以有人帮我在转换onclick事件到pageload事件。

代码语言:javascript
复制
<!-- GTranslate: http://gtranslate.net/ -->
<div class="switcher notranslate">
  <div class="selected">
    <a href="#" onclick="return false;">
      <span class="gflag" style="background-position:-100px -100px;">
        <img src="/gtranslate/blank.png" height="16" width="16" alt="fi" />
      </span>Finnish
    </a>
  </div>
  <div class="option">
    <a href="#"  onclick="doGTranslate('fi|fi');jQuery(this).parent().parent().find('div.selected a').html(jQuery(this).html());return false;" title="Finnish" class="nturl selected">
      <span class="gflag" style="background-position:-100px -100px;">
        <img src="/gtranslate/blank.png" height="16" width="16" alt="fi" />
      </span>Finnish
    </a>
  </div>
</div>
<script type="text/javascript">
  jQuery('.switcher .selected').click(function() {
    if (!(jQuery('.switcher .option').is(':visible'))) {
      jQuery('.switcher .option')
      .stop(true, true)
      .delay(50)
      .slideDown(800);
    }
  });
  jQuery('body').not('.switcher .selected').mousedown(function() {
    if (jQuery('.switcher .option').is(':visible')) {
      jQuery('.switcher .option')
      .stop(true, true)
      .delay(300)
      .slideUp(800);
    }
  });
</script>
<div id="google_translate_element2"></div>
<script type="text/javascript">
  function googleTranslateElementInit2() {
    new google.translate.TranslateElement({
      pageLanguage: 'fi',
      autoDisplay: false
    }, 'google_translate_element2');
  }
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>


<script type="text/javascript">
  /* <![CDATA[ */
  function GTranslateFireEvent(element, event) {
    try {
      if (document.createEventObject) {
        var evt = document.createEventObject();
        element.fireEvent('on' + event, evt)
      } else {
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(event, true, true);
        element.dispatchEvent(evt)
      }
    } catch (e) {}
  }

  function doGTranslate(lang_pair) {
    if (lang_pair.value) lang_pair = lang_pair.value;
    if (lang_pair == '') return;
    var lang = lang_pair.split('|')[1];
    var teCombo;
    var sel = document.getElementsByTagName('select');
    for (var i = 0; i < sel.length; i++)
      if (sel[i].className == 'goog-te-combo') teCombo = sel[i];
    if (document.getElementById('google_translate_element2') == null ||
        document.getElementById('google_translate_element2').innerHTML.length == 0 || 
        teCombo.length == 0 || 
        teCombo.innerHTML.length == 0) {
      setTimeout(function() {
        doGTranslate(lang_pair)
      }, 500)
    } else {
      teCombo.value = lang;
      GTranslateFireEvent(teCombo, 'change');
      GTranslateFireEvent(teCombo, 'change')
    }
  }

  function GTranslateGetCurrentLang() {
    var keyValue = document.cookie.match('(^|;) ?googtrans=([^;]*)(;|$)');
    return keyValue ? keyValue[2].split('/')[2] : null;
  }
  if (GTranslateGetCurrentLang() != null) jQuery(document).ready(function() {
    jQuery('div.switcher div.selected a').html(jQuery('div.switcher div.option').find('span.gflag img[alt="' + GTranslateGetCurrentLang() + '"]').parent().parent().html());
  });
  /* ]]> */
</script>
EN

回答 4

Stack Overflow用户

发布于 2021-02-05 11:21:19

对我有效!!

代码语言:javascript
复制
add_action('wp_footer', 'my_enqueue_front_scripts',0);
function my_enqueue_front_scripts(){
    echo '<script type="text/javascript">
   doGTranslate("en|iw");return false;
</script>';
}

票数 1
EN

Stack Overflow用户

发布于 2016-01-13 18:09:32

根据我的理解,下面的代码是将页面转换为Finnish

代码语言:javascript
复制
doGTranslate('fi|fi');
jQuery(this)
  .parent()
  .parent()
  .find('div.selected a')
  .html(jQuery(this).html());
return false;

您只需在$(document).ready(function(){...})上调用此代码

票数 0
EN

Stack Overflow用户

发布于 2016-01-13 18:11:15

使用以下脚本:

代码语言:javascript
复制
<script>
    $(document).ready(function(){
        doGTranslate('fi|fi');jQuery(this).parent().parent().find('div.selected a').html(jQuery(this).html());return false;
    }
</script>

只需将其添加到标题中(我认为如果您在标题中的所有脚本之后输入它,它就会起作用)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34763527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档