0

メディアボックスがjavascriptを使用してサポートするいくつかのリンクにrel=lightboxを配置したいと思います。

私はこれを試してみて、なぜそれが機能しないのか疑問に思いますか?

テスト: http: //jsbin.com/opica

これを編集するのを手伝ってください:http://jsbin.com/opica/edit

<script  type="text/javascript">
var x=xmlDoc.getElementsByTagName("a");
var regexku=/^.+(((twit)|(tweet)|(com/video.+)|(flickr.com.+)|(tube.com.+))|((gif)|(jpe?g)|(png)|(flv)|(swf)|(mp3)|(mp4))$)/;

for(i=0;i<x.length;i++)
 {
a=x[i].getAttribute('href');
if (a.match(regexku) != null)
   {
   x.item(i).setAttribute("rel","lightbox");
   }
 }

</script>
4

2 に答える 2

1

したがって、エラー コンソール (Firefox の [ツール] -> [エラー コンソール]) を開くと、ページに次の 2 つのエラーが表示されます。

Error: xmlDoc is not defined
Source File: http://jsbin.com/opica
Line: 35

Error: invalid regular expression flag v
Source File: http://jsbin.com/opica
Line: 21, Column: 38
Source Code:
var regexku=/^.+(((twit)|(tweet)|(com/video.+)|(flickr.com.+)|(tube.com.+))|((gif)|(jpe?g)|(png)|(flv)|(swf)|(mp3)|(mp4))$)/; 

後者は、バートが提案したようにスラッシュをエスケープすることで修正されます(com\/video)。

前者は のようなものはないと言いxmlDocます。ページのドキュメントを意味している可能性があります。その場合は、に置き換える必要がありますdocument

次に、ページの読み込みが完了した後にスクリプトを実行する必要があるため、すべてが機能しない可能性があります。jQuery では$(document).ready(function() { /* do your work here */ })、使用しているフレームワーク (mootools-yui?) を使用してそれを行う方法をググってください。

その後、ご覧のとおり、リンクに rel 属性が設定されます: http://jsbin.com/elaca/edit。使用しているライブラリがまだ機能しないという事実は、それを間違って使用していることを意味します。誰かがあなたのためにドキュメントを検索できるように、ライブラリをダウンロードしたページへのリンクさえしていませんでした...

于 2009-10-16T06:48:01.893 に答える
0

/との間comをエスケープしてみてくださいvideo

于 2009-10-16T05:48:52.933 に答える