2010-06-30 3 views
0

사용자 정의 웹 링크를 열려면 서머 마트를 작성했습니다.이 경우에는 UCSC 게놈 브로커의 특정 게놈 위치를 엽니 다.사용자 정의 링크를 열고 사용자 정의 양식 드롭 다운 상자 선택하기

javascript:d=%22%22+(window.getSelection?window.getSelection():document.getSelection?document.getSelection():document.selection.createRange().text);d=d.replace(/%5Cr%5Cn%7C%5Cr%7C%5Cn/g,%22%20,%22);if(!d)d=prompt(%22Enter%20the%20chromosomal%20location%20(ex.%20chr1:213243007-213243247):%22,%20%22%22);if(d!=null)location=%22http://genome.ucsc.edu/cgi-bin/hgTracks?hgS_doOtherUser=submit&hgS_otherUserName=Denilw&hgS_otherUserSessionName=mrkdOvrExpUniqMonometh&position=%22+escape(d).replace(/%20/g,%22+%22);void%200 

표시 할 수 있습니다 인간 게놈의 24 개 염색체가 있고 난 다음 작업을 수행하고 싶습니다 :)

1 사용자 입력 문자열

사용에서 염색체를 구문 분석 chr22에서 22를 구문 분석 할 자바 스크립트의 정규식 : 213243007-213243247-213243247

2) UCS의 양식 드롭 다운 옵션에서 선택하십시오 C 사용자 입력에 따라

22 개의 각 염색체에 대해 총 4 개의 트랙 또는 데이터 세트가 표시됩니다 (총 88 개). 이들은 정의에서 선택할 수 있습니다 위에서 선택한 LINKE에 따라 UCSC 게놈 브라우저의 부분을 추적, 말을

http://genome.ucsc.edu/cgi-bin/hgTracks?hgS_doOtherUser=submit&hgS_otherUserName=Denilw&hgS_otherUserSessionName=mrkdOvrExpUniqMonometh&position=chr14%3A22%2C409%2C038-22%2C409%2C507

HS0356_chr_ 염색체 _duplicates_standard_len_triangle HS0445_dpwg_chr_chr 염색체 _duplicates_standard_len_triangle HS1328_chr_ 염색체 _duplicates_standard_len_triangle HS1329_dpwg_chr_chr CHROMOSOME _dupli 내가 염색체는 1 부에 정의 된 위 대한 드롭 다운 메뉴를 원하는 그런

cates_standard_len_triangle

때문에 관심의 염색체에 대한 데이터 만 표시됩니다 전체에 숨기기 에서 변경 될 수 있습니다 .

아마 이런 식으로 뭔가 도움이 될 것입니다 : 첫 번째 문제에 대한 http://www.codeproject.com/KB/scripting/autoselect.aspx

답변

1

,

var str = "chr22:213243007-213243247"; 
var result = /chr(\w*):(\d*)-(\d*)/.exec(str); 
if(result) 
{ 
    alert(result[1]) // 22 
    alert(result[2]) // 213243007 
    alert(result[3]) // 213243247 
} 
else 
{ 
    // User entered invalid string 
    alert("Invalid input"); 
} 

을 그냥 무시, result[2]result[3]이 필요하지 않은 경우. 나는 당신의 질문의 두 번째 부분 바라 보았다

이 같은 페이지 모양의 드롭 다운의 대부분을 (잘하면 내가 제대로 이해), 그리고 : 이제

<select name="ct_HS1329dpwgchrchr17duplicatesstandardlentriangle_5941" class="hiddenText" style="width: 70px"> 
    <option selected="">hide</option> 
    <option>dense</option> 
    <option>full</option> 
</select> 

, 우리는 다음과 같은 코드를 사용할 수 있습니다 위의 select 요소를 얻고 '전체'에 선택한 옵션 설정 :이 반복 포함하기 때문에 나는이 솔루션을 좋아하지 않아

// Convert "chr17_duplicates_standard_len_triangle" to "chr17duplicatesstandardlentriangle" 
var selectText = "chr17_duplicates_standard_len_triangle"; 
var selectName = selectText.replace(/_/g, ""); 

// Find the element that contains "chr17duplicatesstandardlentriangle" in 
// it's name. 
var selectElements = document.getElementsByTagName("select"); 
for(var i=0;i<selectElements.length;i++) 
{ 
    var ele = selectElements[i]; 
    var name = ele.name; 
    if(name.indexOf(selectName)!==-1) 
    { 
     ele.selectedIndex = 2; 
     break; 
    } 
} 

: (편집 전체 요소 이름은 예상 할 수 없기 때문에 해결 방법을 추가) 당신이 오직 겨우 때 페이지의 모든 선택 요소를 통해 하나. 누군가가 더 나은 해결책을 알고 있다면 말해주십시오.

귀하의 질문에 대한 답변입니다.

+0

거의 완벽하지만 드롭 다운 메뉴의 레이블 (예 : HS1329_dpwg_chr_chr * CHROMOSOME * _duplicates_standard_len_triangle)에서 드롭 다운 메뉴의 실제 코딩 된 이름으로 이동하는 방법을 모르겠습니다. 예 : "ct_HS1329dpwgchrchr17duplicatesstandardlentriangle_5941")을 사용합니다. –

+0

문제는 이름 끝에 '_5941'이라고 생각합니다. 그냥 난수로 보입니다. 내 코드에서 해결 방법을 추가하려고합니다. – Na7coldwater

+0

sweet, thanks in advance –