【问题标题】:XCODE trying to search and replace in localy loaded htmlXCODE 试图在本地加载的 html 中搜索和替换
【发布时间】:2011-07-12 17:40:58
【问题描述】:

我承认我不是 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 正在启动,但它什么也没做!!!

【问题讨论】:

  • 请不要多次问同一个问题。请耐心等待或改进您的问题以获得“碰撞”。谢谢。

标签: javascript iphone html replace


【解决方案1】:

您只是想进行查找和替换吗?这在 Objective-C 中会更容易实现。

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

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

然后加载新的字符串

[webView loadHTMLString:finalString baseURL:someURLHere];

【讨论】:

  • 啊,好吧,刚刚编辑了我的答案,包括编辑 HTML 字符串,然后在 webView 中加载最终字符串。
  • 知道了,用 nil 替换了 someURLHere,它的作用就像是魅力 Brandon 你是个天才
  • 一件事,虽然它完全破坏了像可折叠面板一样的html结构,所以它只在有限的东西上有用,恐怕我又回到了原点
  • 如果我将 html 加载到字符串中,它会破坏可折叠面板,我将不得不回到 javascript,啊,多么沮丧
  • 然后将字符串写回 HTML 文件。
【解决方案2】:

我相信你需要 JavaScript 后面的分号。

script=@"findAndReplace(75,900);";  

【讨论】:

  • 遗憾的是没有改变
【解决方案3】:

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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2011-09-25
    • 2011-01-05
    • 2015-11-23
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多