Turning gears are the logo of co-scripts

Herhangi bir elementin içerisindeki tüm input tipinde ve select elementlerinin içeriklerini sıfırlamak ve unchecked yapmak için gereken kısa bir fonksiyon. Form varsa form.reset() e ek olarak kullanılabilir. Formsuz olarak tasarlanan arayüzlerde de işe yarar.

function hedefiSifirla(anacElementID){

	
var anacElement=(typeof anacElementID=='object'?anacElementID:nY(anacElementID));


					for(var xi=0;xi < anacElement.childNodes.length-1;xi++){
								//------------------------------------------------- Çocuk var ise çocuğu da döngüye sokalım
										var elm = anacElement.childNodes[xi];
								//-------------------------------------------------------------------------------------- temizleme işleri
								//console.log(elm.tagName+':'+elm.value+'\n');
											if((elm.tagName=='INPUT' && (elm.type!='CHECKBOX' || elm.type!='RADIO'))|| elm.tagName=='TEXTAREA'){
												elm.value='';
												elm.length=0;
											}
											if((elm.tagName=='INPUT' && elm.type=='CHECKBOX')||(elm.tagName=='INPUT' && elm.type=='RADIO')){
												elm.checked=false;
											}	
											if(elm.tagName=='SELECT' && elm.id!='eTG'){
												elm.options.length=1;
											}
								if(elm.hasChildNodes()==true || elm.childNodes.length >-1){hedefiSifirla(elm)};																	
					}
}
co-scripts tag image reset child elementsform resettagnamechecked=falsechildnodes.length
ID:275 | Okunma:135


 

Kendi domaininizde bulunan (üretilmiş) bir xml dosyasını DOM'a uygun xml metni olarak ele almak için crossbrowser bir fonksiyon. (jquery ile çok daha basit şekilde yapılabilmektedir.)

function xmlDosyasiniYukle(dosyaAdresi)
{
    var xmlDoc;
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET", dosyaAdresi, false);
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;
    return xmlDoc;
}
co-scripts tag image xmlxmlhttprequestxmlhttpresponsexmljavascript ile xml dosyasi okumak
ID:274 | Okunma:221


 

Bu fonksiyon hedef olarak gösterilen tasiyici bir element içindeki tüm inputlara bakarak checkbox veya radio tipindekilerin değerlerini bir dizi haline getirip geri verir.

sikayet.checkedHangisi=function(checkedID){
	var isaretliler = [];
	var cKT = nY(checkedID);
	var inputList = cKT.getElementsByTagName('input');
	var inputListLength = inputList.length;
	for(xi=0;xi < inputListLength;xi++){
		if(inputList[xi].checked){
			isaretliler.push(inputList[xi].value);
		}
	}
return isaretliler;	
}

co-scripts tag image checkedinputradiocheckboxget values of checked inputs
ID:273 | Okunma:181


 

Daha önce de defalarca gereken bir konuyu bu sefer jquery ile çözmeye çalıştım ancak beceremedim. Daha doğrusu jquery DOM hiyerarşisi içerisindeki ele almalarını birden çok yolla yapabildiğinden çalışabilen bir yolu bulmak için çok fazla zaman harcadım. Sonuç olarak bu ihtiyacı doğrudan javascript yazarak kütüphane yardımsız çözmeye çalıştım.

Sadece kısaca kodu alıyorum buraya. Kod parçacığında idsi verilen elementin (ul) aldındaki diğer elementlerden className belirli bir kelimeyi içerenlerin (çoklu css class tanımı olduğundan) value attribute'ünün geri döndürülmesi. İstenilen herhangi bir attribute yaratılarak kullanılabilir. 

.


function(secmeliID){	
var isaretliler = [];	
var sKT = nY(secmeliID);
var liList = sKT.getElementsByTagName('li');
var liListLength = liList.length;
for(xi=0; xi < liListLength;xi++){
		if(liList[xi].className.indexOf("ui-selected") >-1){
			isaretliler.push(liList[xi].getAttribute('value'));			
			}
}
return isaretliler;								
}

co-scripts tag image alternative of jquerys findclasses inside idelement list
ID:272 | Okunma:205


 

İş yerimizdeki bir işlemi hızlandırmak istedim. İşlem MS Word 2010'de bir yazıyı kaydettikten sonra aynı dosyanın bir de .pdf halini elde etmeye dayanıyordu. Word  SaveAs seçeneği içinde pdf tipinde kaydı desteklemesine rağmen çok fazla tıklama ve seçme gerekiyordu. Biz pdf'leri kaydederken bir de belirli bir kelime katarını dosya adının önüne yazıyoruz.

Biraz araştırınca macro ile bunları yapabileceğimi öğrendim. (stackoverflow sağolsun). Bu işlemi bir Sub içine koyduktan sonra ilgili sub'ı bir düğmeye atadım. Sonra bu işlemi makroları çalıştıracak şekilde otomatikleştirdim.

Nereden baksanız 3-4 saniye kazandık. Macroyu normal.dot için etkinleştirdiğinizde tüm belgeleriniz otomatik olarak bu makroları çağıran düğmelerle donanıyor. Farklı kullanım alanları olabilir. Yazdığınız modulleri (VBA makrosu içeren kısımlar) *.bas uzantılı bir dosya olarak export edebiliyor ve başka bir bilgisayardaki word içerisinden bu dosyayı import edebiliyorsunuz.

Word içerisinde Alt+F11 ile Visual Basic for Applications (VBA) Editörünü açıyorsunuz.

Sol kısımda görülen Project penceresinde iki döküman göreceksiniz. Yazdığınız kod o an açık olan ve genellikle Document1 olarak isimlendirilen dosyayı veya varsayılan olarak açılan tüm yeni dökümanlara kalıp oluşturan Normal (normal.dot) dosyasına yazılır. Hangisini seçerseniz kodlar onun içerisine yazılır. Biz Normal'e uyguladık.

Amacımız hali hazırda kaydedilmiş bir dosyayı aynı adreste (klasörde) pdf uzantılısını kaydetmek. Bu nedenle önce belgenin kaydedildiği yeri alıyoruz. Eğer kaydedilmemişse veya belirli bir eski belge açılmamışsa Word varsayılan olarak (İng. versiyonda) "Libraries\Documents" adresini hedef alıyor.  Dosyamızı kaydettiğimizi varsayalım.

VBA açık ve üzerinde çalışılan belgeyi ActiveDocument nesnesi olarak ele alıyor. Bu belgenin yolunu almak için ActiveDocument.Path yazmanız yeterli. Ancak Path içinde kullanıcı adının da yer alma olasılığı var. Veya klasör isimlerinde izin veirlen bazı özel karakterler bulunabilir. Bunu sizin kullanımınıza göre temizleyeceğinizi veya gerekli değişiklikleri yapacağınızı varsayıyorum.

Dosyanın yolunu dosya adıyla birlikte alabilmek için ActiveDocument.FullName (fso'dan aşina olanlar olabilir)...

ve benim uyguladığım dosya adını yeniden bir araya getiren kalıp fonksiyon. 

Function yeniDosyaAdiVer()

yeniDosyaAdiKelimeleri = Split(ActiveDocument.FullName, ".")

yeniDosyaAdiKelimeleriSayisi = UBound(yeniDosyaAdiKelimeleri)

    For xcv = 0 To (yeniDosyaAdiKelimeleriSayisi - 1)

        sonDosyaAdi = sonDosyaAdi & yeniDosyaAdiKelimeleri(xcv) & "."

        yeniDosyaAdiVer = sonDosyaAdi

    Next

End Function

 

Sub TITCK_ic2pdf()
    With ActiveDocument
    sondurum = Replace(yeniDosyaAdiVer(), (.Path & "\"), "")
    'MsgBox (sondurum)
    sonPDFAdi = .Path & "\on-kelime-" & sondurum & "pdf"
    'MsgBox (.FullName & Chr(13) & sonPDFAdi)
    
      .ExportAsFixedFormat OutputFileName:=sonPDFAdi, _
      ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, _
      OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
      Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
      CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
      BitmapMissingFonts:=True, UseISO19005_1:=False
    End With
End Sub

ve sonra kaydedip editörden çıkıyoruz.

co-scripts tag image
ID:271 | Okunma:446