1

ページから2 つの を削除したい<div>(スペースを非表示にして折りたたむ)。

最初は Greasemonkey を使用して ID に基づいて削除するつもりでしたが、これらには ID がないようです。次に、iframe のコンテンツが変更されたと想定しています (これはコンテンツ バナーであるため)。

これらをなくすにはどうすればよいですか?:)

<div style="float: left; width: 700px; height:250px; margin-top:5px; margin-bottom:10px;">
<iframe src='http://www.therpf.com/banner-system/feature2.php' style='position:relative;top:0px;left:0px;height:272px;width:756px;' frameborder=0 scrolling='no'></iframe>
</div>

<div style="background: url('/images/styles/prometheus/black-30.png'); border:1px solid #333333; border-radius: 10px; float: right; margin-top:5px; margin-right: 2px; padding:10px 12px; width:300px; height: 250px;">

<!--Replica Movie Props – 9-->
<!--Screen Used Movie Props and Wardrobe - 45-->
<!--Replica Paper Props – 40-->
<!--Free Harry Paper Props – 64-->
<!--Sculpture and Makeup Effects – 62-->
<!--Replica Movie Costumes - 24-->
<!--Costume and Cosplay Showcase – 67-->
<!--Judge Dredd Costume Group – 71-->
<!--General Modeling - 11-->
<!--Studio Scale Models – 10-->
<!--Entertainment and Movie Talk – 47-->
<!--Conventions and Prop Parties – 68-->
<!--Off-Topic Talk – 12-->
<!--The Junkyard - 13-->

<iframe id='a9418415' name='a9418415' src='http://moviepropsites.com/ads/www/delivery/afr.php?zoneid=67&amp;target=_blank' frameborder='0' scrolling='no' width='300' height='250'><a rel='nofollow' href='http://moviepropsites.com/ads/www/delivery/ck.php?n=a0516fad' target='_blank'><img src='http://moviepropsites.com/ads/www/delivery/avw.php?zoneid=67&amp;n=a0516fad' border='0' alt='' /></a></iframe>

</div>
<div style="clear:both"></div>

基本的に - 2 つの主要な DIV を削除して、これに置き換えたいと思います。

<div style="clear:both"></div>

どんな助けでも大歓迎です。

====更新====

ページの 1 つの完全な出力。ペーストビンに貼り付けました。 http://pastebin.com/s50tM8iU

行 401-465 は、私が削除しようとしているものであり、行 465 のみを残します。

ありがとう!

4

1 に答える 1

1

これらの s の堅牢なセレクターを作成するには、ページ全体を表示する必要がある場合があります<div>

ただし、望ましくないコンテンツの属性を持つ iframe が常に含まれている場合は、srcそれらの iframe を使用して卑劣な div を追い詰めることができます。

src不正な iframe属性の主要なテキスト スニペットのリストを作成します。このコンテンツが AJAX によって追加された場合に備えて、jQueryとも使用しています。waitForKeyElements()

したがって、スクリプトは次のようになります。

// ==UserScript==
// @name     _Remove bad divs containing bad iframes
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
var badFrameSrcSnips = [
    //-- These are case-sensitive
    "therpf.com/banner-system",
    "moviepropsites.com/ads"
];

for (var J in badFrameSrcSnips) {
    var srcSnippet  = badFrameSrcSnips[J];

    waitForKeyElements (
        "iframe[src*='" + srcSnippet + "']", removeBadDiv
    );
}

function removeBadDiv (jNode) {
    //-- Replace the bad div (iframe's parent) with a tame one.
    jNode.parent ().replaceWith ('<div style="clear:both"></div>');
}
于 2013-06-16T06:35:52.187 に答える