【问题标题】:Javascript: Adding a search ability in an internal site [closed]Javascript:在内部站点中添加搜索功能[关闭]
【发布时间】:2016-02-29 17:21:16
【问题描述】:

我在公司网络上创建了一个静态网站。 它不会暴露在互联网上。

它们是纯 HTML - 目前还没有 CSS 或脚本。

我的意思是非常简单,因为我的时间非常有限。

但是,显然,搜索机制是必需的。

我在网上找到了 google 和其他汽车制造商。但据我了解,他们需要设置互联网网址并且不支持内部站点。

而我的 urls 域的形式是:

http://192.168.4.XXX/something.htm

那么,您知道我可以使用的解决方案吗?一个免费的组件还是我可以使用的 javascript

谢谢!

【问题讨论】:

    标签: javascript html search search-engine


    【解决方案1】:

    你在运行什么来像这样在本地 Intranet 上托管网页?

    如果您使用某种服务器,如 Apache 或 IIS,则可以使用服务器端语言来创建搜索功能。在客户端使用纯 Javascript 创建搜索功能是不切实际的。

    这是一个在 Apache 服务器上运行的 PHP 脚本可以做什么的示例https://stackoverflow.com/a/4090449/4422715 请记住,这是一段非常简单的代码,肯定会出现问题,但对于小规模使用,可能会值得做这样简单的事情。

    编辑:OP 用 ASP 声明 IIS。

    看了一圈,找到了http://www.codeproject.com/Articles/7296/Reading-Files-in-ASP-and-How-to-Search-for-a-parti

    输入要搜索的单词的页面应该是这样的,比如说“search.htm”

    <FORM METHOD=POST id=form1 action="searchresult.asp"
                           name=form1 onsubmit="return Check();">
      Enter text to search for:
      <INPUT TYPE=TEXT NAME=TextToSearch>
      <P>
      <INPUT TYPE=SUBMIT VALUE="Begin Search!" id=SUBMIT1 name=SUBMIT1>
    </FORM>
    

    那么“searchresult.asp”页面应该是:

    'Search Text
    Dim strtextToSearch
    strtextToSearch = Request("TextToSearch")
    
    'Now, we want to search all of the files
    Dim fso
    
    'Constant to read
    Const ForReading = 1
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    
    'Specify the folder path to search.
    Dim FolderToSearch
    FolderToSearch = "D:\temp"
    
    'Proceed if folder exists
    if fso.FolderExists(FolderToSearch) then
    
        Dim objFolder
        Set objFolder = fso.GetFolder(FolderToSearch)
    
        Dim objFile, objTextStream, strFileContents, bolFileFound
        bolFileFound = False
    
        Dim FilesCounter
        FilesCounter = 0 'Total files found
    
        For Each objFile in objFolder.Files
            Set objTextStream = fso.OpenTextFile(objFile.Path,ForReading)
            'Read the content
            strFileContents = objTextStream.ReadAll
            If InStr(1,strFileContents,strtextToSearch,1) then
               Response.Write objFile.Name & "<br>"
               FilesCounter = FilesCounter + 1
            End If
            objTextStream.Close
        Next
    
        if FilesCounter = 0 then
            Response.Write "Sorry, No matches found."
        else
            Response.Write "Total files found : " & FilesCounter
        end if
    
        'Destroy the objects
        Set objTextStream = Nothing
        Set objFolder = Nothing
    
    else
        Response.Write "Sorry, invalid folder name"
    end if
    Set fso = Nothing
    

    以上是直接从链接网站复制粘贴。在运行之前查看链接的网站并通读代码!!!确保将“FolderToSearch”设置为您的根文档文件夹。

    看起来这段代码只会直接查看您设置搜索的文件夹中的文件。如果您希望它读取子文件夹等,那么您需要弄清楚如何做到这一点对不起,我是不是 ASP 专家,您可以在网站的 ASP 部分发布此代码,并寻求有关此脚本目录递归的帮助。

    【讨论】:

    • 站点在 IIS 上。我对网络编程非常陌生,因此我在 Html/CSS/Javascript/php/等方面没有经验。你能给我指出一个适合我在 IIS 上而不是 apache 上的需要的代码吗?谢谢
    • 当然,我会试一试并更新上面的答案:)
    • 添加了一些代码。希望有帮助:)
    • 我认为我将能够处理子文件夹搜索问题。但是 - 关于路径:我的文件在 \\172.20.4.107\c$\KB\,我应该将什么设置为 FolderToSearch ? c:\KB ?
    • 嗯。不,您需要将原始文件所在的文件夹放在运行 IIS 服务器的计算机上。必须有一个文件物理存在的地方。您可以尝试在 IIS 安装文件夹中查找名为“htdocs”的文件夹,通常服务器将文档放在这样的文件夹中。或者它可能在其他地方,我真的对 IIS 不够熟悉,无法告诉你确切的位置。但是您至少应该能够在程序的设置中找到它!祝你好运 :)。欢迎询问更多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多