0

我有一个“反馈小部件”,我想为低分辨率屏幕隐藏它。我的问题是它在之后立即注入以下代码<body>,无论我尝试什么,我都无法隐藏reformal_tab元素

<a id="reformal_tab" href="http://domain.com" onclick="Reformal.widgetOpen();return false;" onmouseover="Reformal.widgetPreload();" onmouseout="Reformal.widgetAbortPreload();"><img alt="" src="domain.com/tab.png"></a>

我试过的

<script>
        $('reformal_tab').hide();
        $('#reformal_tab').hide();
</script>

这是实际的小部件,如果可以帮助http://reformal.ru/

编码:

<script type="text/javascript">
$(function() {
    $('#reformal_tab').hide();
});

    var reformalOptions = {
        project_id: 93459,
        project_host: "domain.com",
        tab_orientation: "left",
        tab_indent: "50%",
        tab_bg_color: "#F05A00",
        tab_border_color: "#FFFFFF",
        tab_border_width: 2
    };

    (function() {
        var script = document.createElement('script');
        script.type = 'text/javascript'; script.async = true;
        script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'media.reformal.ru/widgets/v3/reformal.js';
        document.getElementsByTagName('head')[0].appendChild(script);
    })();
</script>

你可以在这里看到它 http://jsfiddle.net/PQsQq/2/

4

3 回答 3

3

第二个调用是有效的。通过id#引用元素。

$('#reformal_tab').hide();

您还需要在文档准备好时调用它。

$(function() {
    $('#reformal_tab').hide();
});

为什么不在注入时将其隐藏,然后可以将其显示为更高分辨率的屏幕?

<a id="reformal_tab" style="display:none;" href="http://domain.com" ...

然后在你的脚本中的某个地方..

if(highResolution) {
  $("#reformal_tab").show();
}
于 2013-03-28T00:14:57.450 回答
0

为什么不直接删除它?

$('#reformal_tab').remove();
于 2013-03-28T00:15:20.617 回答
0

如果元素是用 javascript 注入的,它可能是在 DOM 准备好后动态插入的。解决方案相当简单,在您的 CSS 中执行以下操作:

#reformal_tab {display: none;}
于 2013-03-28T00:25:42.290 回答