XCODE пытается найти и заменить локально загруженный HTML - PullRequest
0 голосов
/ 12 июля 2011

Я признаю, что я не эксперт по Javascript, и этот действительно доставляет мне неприятности, любая помощь очень ценится

это то, что я получил до сих пор внутри HTML есть JavaScript

<head>
<script type='text/javascript'>
function findAndReplace(searchText, replacement) 
{

    alert('pokrecemo find and replace');

        if (!searchText || typeof replacement === 'undefined') {
        // Throw error here if you want...
        alert('govno greska u parametrima')
        return;## Heading ##
    }
    var regex = typeof searchText === 'string' ?
                new RegExp(searchText, 'g') : searchText,
        childNodes = document.body.childNodes,
        cnLength = childNodes.length,
        excludes = 'head,style,meta,script';
    while (cnLength--) {
        var currentNode = childNodes[cnLength];
        if (currentNode.nodeType === 1 &&
            (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {
            arguments.callee(searchText, replacement, currentNode);
        }
        if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {
            continue;
        }
        var parent = currentNode.parentNode,
            frag = (function(){
                var html = currentNode.data.replace(regex, replacement),
                    wrap = document.createElement('div'),
                    frag = document.createDocumentFragment();
                wrap.innerHTML = html;
                while (wrap.firstChild) {
                    frag.appendChild(wrap.firstChild);
                }
                return frag;
            })();
        parent.insertBefore(frag, currentNode);
        parent.removeChild(currentNode);
    }
}


</script>
....
</head>

и XCODE

(void)webViewDidFinishLoad:(UIWebView *)webView {  
    if (index.row==7) {  
    script=@"findAndReplace(75,900)";  



NSLog(@"%@",script);  
[self.tekst stringByEvaluatingJavaScriptFromString:script];  

}   

}

и в viewdidload
.....
дело 7:
[tekst loadRequest:[NSURLRequest requestWithURL:[NSURL `

fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sometest" ofType:@"html
"]`isDirectory:NO]]];  




tekst.delegate = self; 



break; 

.....

что я делаю не так
Я вижу, что JavaScript запускается, но он ничего не делает !!!

Ответы [ 3 ]

2 голосов
/ 12 июля 2011

Вы просто пытаетесь найти и заменить? Это было бы намного проще сделать в Objective-C.

NSString *htmlString =  [NSString stringWithContentsOfFile:@"pathToFile" encoding:NSUTF8StringEncoding error:nil];

NSString *finalString = [htmlString stringByReplacingOccurrencesOfString:@"75" withString:@"900"];

Затем загрузить новую строку

[webView loadHTMLString:finalString baseURL:someURLHere];
1 голос
/ 13 июля 2011

Я полагаю, вам нужна точка с запятой после JavaScript.

script=@"findAndReplace(75,900);";  
0 голосов
/ 16 июля 2011

произошла ошибка в javascript, я поместил ее в dreamweaver, и она сразу же распознала синтаксическую ошибку, удалив эту ошибку, все работает нормально, и не должно быть точки с запятой, как подсказывает picciano, она начинает вести себя хорошо, по крайней мере странно, не знаю почему, должна быть точка с запятой, но без нее она работает правильно

удалив это

   if (!searchText || typeof replacement === 'undefined') {
    // Throw error here if you want...
    alert('govno greska u parametrima')
    return;## Heading ##
}

все отлично работает

оригинальная кодировка здесь http://james.padolsey.com/javascript/find-and-replace-text-with-javascript/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...