优雅地删除div之外的html内容

时间:2011-10-06 06:08:37

标签: javascript dom html google-translate

我正在使用谷歌翻译API将一些内容插入我的页面(下拉框),而某些内容不在任何div或其他元素之内,但我想删除它。

<div class="skiptranslate goog-te-gadget" style="">   
 <div id=":0.targetLanguage">
  <select class="goog-te-combo">
  </select>
 </div>
 Powered by   // want to remove this 

我试图通过重新分配包含div的innerHTML来实现这一点,

     var body = document.getElementById("container");
     body.innerHTML = body.innerHTML.replace("Powered by", " ");

但这似乎重置/破坏了我需要保持完整的API的其他一些功能。

有更优雅的方式吗?

编辑 - 关于服务条款,如果不允许这样做,是否有人知道我可以使用的开源API?

3 个答案:

答案 0 :(得分:2)

如果您删除此类内容,我确信您将侵犯许可协议,以及他们的欺诈行为。

请注意, Google Translate API 已弃用,以支持付费服务。

最好的方法是忘记谷歌翻译服务,如果你想要免费版本,因为他们今年说明they will close并使用其他免费服务,例如Bing Service

答案 1 :(得分:1)

来自Google Translate API v1 documentation

  

警告!此API要求在任何API输入附近显示归因   框和显示结果,表明它是“Powered by   谷歌“。如果你选择不使用.getBranding(),你有义务   自己提供这个品牌。

答案 2 :(得分:1)

在寻找有关此事的一些信息时,我想出了以下内容:

为什么不直接缩小额外的&#39;在你的网站上减少干扰的东西,但比大多数合同底部的精美印刷更清晰。因此,您应该遵守服务条款,不要在页面上放弃过多的空间。

这里有一些CSS魔术应该可以解决大多数浏览器的问题:

...

/* shrinks the entire contents of the GoogleTranslate main div to 70%, still readable */
#google_translate_element {
  zoom: .7;
  -moz-transform: scale(.7); /* FireFox understands this */
  -moz-transform-origin: 0 0;
}

/* within that, further shrink 'provided by' text, which affects the math elsewhere ... */
#google_translate_element div {
  font-size: 25%;
}

/* on hover of the select (drop down), make it a bit bigger, don't forget it was shrunk */
#.0.targetLanguage select:hover {
  font-size: 2250%; /* don't ask, it worked in Chrome & Safari, IE 8 (!) seemed ok too */ 
}

...

我使用最新的&#39;进行了快速测试。 Chrome,Safari,FireFox和MSie8,以及以下内容,以便在页面上显示Google翻译:

...

<script>
  function googleTranslateElementInit() {
    new google.translate.TranslateElement({
      pageLanguage: 'en',
      gaTrack: true,
      gaId: 'UA-xxxxxxxx-x',
      layout: google.translateElement.InLineLayout.HORIZONTAL
    }, 'google_translate_element');
  }
</script>

<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit">
</script>

...

注意到Windows上的FireFox没有执行下拉列表。但它没有上面的CSS技巧(!!)

有问题

使用数字和您喜爱的浏览器来调整您的需求。

我想将水平分成两行,使其更加紧凑。这可能需要一些JavaScript或其他方式解析并潜入正确的位置?也许使用类似于上面的内容来修改Google提供的其他布局之一。只要徽标在那里,我们就可以了......对吧?

玩得开心!