Faits :
A.
Les époux B.B._ et C.B._ ont fait installer deux chambres froides au sous-sol d'une villa qu'ils possèdent à X._.
A._ SA, active dans le secteur des installations de conditionnement d'air et de réfrigération, leur a adressé un devis le 1er août 2007. Son offre était soumise à diverses modalités indiquées dans le document; en particulier, l'entreprise réservait la compétence exclusive des tribunaux ordinaires de son siège social pour tout litige susceptible de s'élever entre les parties, indépendamment du mode de paiement et du lieu de livraison, y compris en cas de pluralité de défendeurs ou d'appel en garantie. Cette réserve apparaissait au verso de la première page et aussi dans des conditions générales intégrées à l'offre. Le siège de A._ SA se trouve à Meyrin.
C.B._, pour elle-même et son mari, a approuvé oralement le devis;elle a cependant discuté le prix et offert 40'000 fr., taxes comprises; A._ SA a accepté cette contre-offre. Elle a exécuté les travaux et reçu paiement du prix.
B.
Le 14 septembre 2011, les époux B._ ont ouvert action contre A._ SA et contre D._ SA devant le Tribunal civil de l'arrondissement de la Gruyère. Ils reprochaient aux défenderesses une exécution défectueuse des travaux accomplis dans la villa. Ils réclamaient le paiement de 163'258 fr.70. Ils tenaient le tribunal pour compétent à raison du lieu d'exécution des contrats.
A._ SA a excipé de l'incompétence du tribunal saisi; elle s'est prévalue de la clause d'élection de for insérée dans son devis du 1er août 2007.
Le tribunal s'est prononcé le 30 janvier 2013; il a accueilli l'exception et déclaré la demande irrecevable, faute de compétence à raison du lieu, en tant qu'elle était dirigée contre A._ SA. Les demandeurs ont appelé de ce jugement.
Le 16 octobre 2013, le tribunal a déclaré la demande irrecevable aussi en tant qu'elle était dirigée contre D._ SA, pour le même motif. Les demandeurs ont appelé de ce jugement.
C.
La IIe Cour d'appel civil du Tribunal cantonal a statué sur les deux appels par un arrêt unique, le 27 août 2014. Elle a accueilli les appels, annulé les jugements attaqués et constaté que la demande en justice était recevable.
La Cour a condamné A._ SA aux dépens d'appel alloués aux demandeurs. Elle a communiqué le dispositif de son arrêt le 3 septembre 2014 en indiquant que le montant de ces dépens serait fixé dans l'expédition motivée; l'avocat des demandeurs devait produire sa liste de frais dans un délai de dix jours. L'avocat a déposé cette liste le 9 du même mois; la Cour s'y est référée pour constater, après élimination de quelques vacations, 19,7 heures d'activité consacrées à la procédure d'appel, et arrêter les dépens au montant de 7'352 fr.05, TVA comprise.
D.
Agissant par la voie du recours en matière civile, A._ SA requiert le Tribunal fédéral d'annuler l'arrêt de la Cour d'appel et de déclarer la demande en justice irrecevable en tant qu'elle est dirigée contre elle.
Les demandeurs concluent au rejet du recours, dans la mesure où celui-ci est recevable.
A._ SA a spontanément déposé une réplique; les demandeurs ont renoncé à la duplique.
D._ SA n'a pas été invitée à procéder.

Considérant en droit :
1.
L'arrêt attaqué est une décision incidente sur la compétence des tribunaux fribourgeois, susceptible du recours séparé prévu par l'<ref-law>. Les conditions de recevabilité du recours en matière civile sont par ailleurs satisfaites, notamment à raison de la valeur litigieuse.
2.
La défenderesse A._ SA persiste à se prévaloir de la clause d'élection de for insérée dans son devis du 1er août 2007, dont les demandeurs contestent qu'elle leur soit opposable.
2.1. Dans les contestations qui ne revêtent pas de caractère international, l'élection de for est actuellement régie par l'<ref-law>. En tant qu'une clause d'élection de for est valable, l'action ne peut être introduite, sauf convention contraire, que devant le for choisi (<ref-law>). L'<ref-law> prévoit que la validité d'une clause d'élection de for est déterminée selon le droit en vigueur au moment où elle a été adoptée; en l'occurrence, cette règle renvoie à l'art. 9 de la loi fédérale sur les fors, du 24 mars 2000 (LFors; RO 2000 2355), qui est demeuré en vigueur du 1er janvier 2001 au 31 décembre 2010.
L'art. 9 al. 2 let. a et b LFors prévoit que la convention d'élection de for doit être passée par écrit. Les actes transmis par un moyen de communication permettant d'établir la preuve par un texte, notamment le télex, la télécopie ou la messagerie électronique (let. a), de même que la convention orale que les parties ont confirmée par écrit (let. b), sont assimilés à une convention écrite.
Ces exigences de forme correspondent à celles de l'art. 5 al. 1 de la loi fédérale sur le droit international privé (LDIP) relatives à la compétence internationale des tribunaux suisses (arrêt 4C.142/2006 du 25 septembre 2006, c. 2), de l'art. 17 al. 1 de la Convention de Lugano concernant la compétence judiciaire et l'exécution des décisions en matière civile et commerciale, conclue en 1988 (aCL), devenu l'art. 23 de la Convention de Lugano (CL) de 2007 sur les mêmes matières, ou encore de l'<ref-law> qui correspond à l'art. 9 al. 1 et 2 LFors, les modifications étant purement rédactionnelles (Message du Conseil fédéral relatif au code de procédure civile suisse du 28 juin 2006, FF 2006 p. 6841 ss, 6879). La jurisprudence relative en général aux exigences de forme des clauses d'élection de for est applicable indistinctement à l'une ou l'autre de ces dispositions.
Lesdites exigences doivent être appliquées avec rigueur car l'élection de for déroge au principe général du for du défendeur (art. 3 LFors, <ref-law>, <ref-law>, <ref-law>). Elles sont destinées à empêcher qu'une clause d'élection de for ne soit incluse dans le texte d'un contrat à l'insu des parties; il faut donc, pour que l'une d'elles puisse se prévaloir d'une pareille clause, que les parties soient effectivement convenues de choisir le for et, cumulativement, que leur volonté commune ait été concrétisée dans l'une des formes mentionnées selon le cas aux art. 9 al. 2 LFors, 17 al. 2 CPC, 5 al. 1 LDIP, 17 al. 1 aCL ou 23 CL (cf. <ref-ruling> consid. 6 p. 400; arrêt 4A_272/2007 du 21 novembre 2007, consid. 5.1, SJ 2008 I 205 p. 208).
Il n'est pas nécessaire que la clause d'élection de for soit revêtue de signatures manuscrites. La convention correspondante peut résulter d'un échange de lettres. La volonté d'accepter une clause que l'autre partie propose par écrit doit être exprimée de manière claire et, aussi, par écrit; le support utilisé importe peu. Le silence de l'un des cocontractants n'offre pas la garantie sérieuse d'une acceptation consciente; c'est pourquoi la clause d'élection de for insérée dans une confirmation de commande écrite n'est pas censée convenue simplement parce que le destinataire ne s'y est pas opposé (<ref-ruling> consid. 7.1.1 p. 401; voir aussi les arrêts 4A_272/2007, ibid.; 4A_323/2013 du 29 novembre 2013, consid. 4.3.3).
En cas d'accord verbal confirmé par écrit (art. 17 ch. 1 let. a aCL, seconde hypothèse; art. 9 al. 2 let. b LFors), la partie qui se prévaut de l'élection de for doit prouver que celle-ci a été l'objet d'un accord verbal exprès, que la confirmation écrite, envoyée par l'une ou l'autre des parties, est parvenue à l'autre partie, et que cette dernière n'a pas élevé d'objection (arrêt 4A_272/2007, ibid.).
2.2. En l'espèce, une clause d'élection de for est présente en deux emplacements dans le devis que la défenderesse A._ SA a adressé aux demandeurs le 1er août 2007. Il est établi que ceux-ci ont accepté oralement l'offre relative aux travaux décrits dans ce devis et qu'il n'en ont négocié que le prix ; il est aussi constant que les travaux commandés ont été exécutés et que le prix de 40'000 fr. oralement convenu a été payé. Ces faits ressortent du jugement du 30 janvier 2013 et nul ne les a mis en doute en appel; en tant que les constatations de la décision présentement attaquée se révèlent lacunaires, selon l'argumentation des demandeurs, elles peuvent être complétées sur cette base conformément à l'<ref-law>.
Un échange de manifestations de volonté réciproques et concordantes est ainsi intervenu sur les éléments essentiels du contrat d'entreprise; en revanche, l'élection de for n'a été validée par aucun accord exprès et les demandeurs l'ont moins encore acceptée par une déclaration écrite. Un hypothétique accord verbal, exprès, n'a pas non plus été confirmé par écrit. Dans ces conditions, le for du siège social de la défenderesse n'a pas été choisi par les parties et d'une manière conforme aux exigences de l'art. 9 al. 2 LFors. La défenderesse affirme inutilement que ses partenaires contractuels ont accepté l'élection de for « par actes concluants », du seul fait qu'ils ont fait exécuter les travaux énumérés dans le devis. Une acceptation « par actes concluants » eût supposé que les demandeurs ouvrissent action au for indiqué dans ce document, ce qu'ils n'ont précisément pas fait. La défenderesse se plaint tout aussi vainement d'abus de droit et de formalisme excessif. En particulier, il n'apparaît pas que les conditions de forme soient invoquées ici dans un but étranger à leur finalité.
Pour le surplus, indépendamment de la clause d'élection de for présente dans le devis, la compétence du tribunal saisi n'est pas contestée.
3.
La défenderesse A._ SA est condamnée aux dépens d'appel. La Cour d'appel en a arrêté le montant sur la base d'une liste de frais déposée par l'avocat des demandeurs. La défenderesse fait valoir que cette liste ne lui a pas été transmise et qu'elle a été privée de toute possibilité de présenter ses observations. Elle se plaint de violation du droit d'être entendu garanti par l'art. 29 al. 2 Cst.
En procédure civile, le droit d'être entendu est aussi garanti par l'<ref-law>; il confère à toute partie, parmi d'autres prérogatives, le droit de participer à l'administration des preuves, de se déterminer à leur propos (<ref-ruling> consid. 3.2 p. 272; <ref-ruling> consid. 3.1 p. 277; <ref-ruling> consid. 2.2 p. 504) et de prendre position sur toutes les écritures des adverses parties (<ref-ruling> consid. 2 p. 485; <ref-ruling> consid. 2.3.3 p. 157; voir aussi <ref-ruling> consid. 3.2 p. 191/192).
La liste de frais a influencé le calcul du montant mis à la charge de la défenderesse à titre de dépens; elle aurait donc dû lui être communiquée pour prise de position. Cette démarche ayant été omise, la défenderesse se plaint avec raison d'une violation de l'art. 29 al. 2 Cst.
La violation du droit d'être entendu ne peut pas être réparée par le Tribunal fédéral, de sorte que, contrairement à l'opinion des demandeurs, le grief concernant le montant des dépens est recevable alors même que la défenderesse n'a pas pris de conclusions chiffrées sur point. L'application de l'<ref-law> n'entre en considération que lorsque la décision attaquée est modifiée sur des points autres que les dépens. Il n'incombait pas non plus à la partie condamnée de réclamer la transmission de la liste et de solliciter un délai pour prendre position; notamment au regard de l'art. 29 al. 2 Cst., il appartient au contraire à l'autorité saisie de communiquer d'office aux parties toute pièce dont elle entend se prévaloir dans sa décision.
Les demandeurs soutiennent aussi à tort que la Cour d'appel n'était pas tenue de transmettre la liste parce qu'elle n'était pas tenue de motiver sa décision fixant le montant des dépens. Il est vrai que la motivation du montant arrêté au titre des dépens n'est en principe pas nécessaire lorsque l'autorité s'en tient aux limites du tarif applicable et que les parties n'allèguent aucune circonstance particulière (<ref-ruling> consid. 2a); en revanche, lorsque l'autorité se prononce sur la base d'une liste de frais et qu'elle entend s'en écarter, elle doit au moins brièvement indiquer les raisons pour lesquelles elle en élimine certains postes, afin que la partie concernée puisse éventuellement attaquer la décision en connaissance de cause (arrêts 6B_124/2012 du 22 juin 2012, consid. 2.2 et 2.3; 5D_45/2009 du 26 juin 2009, consid. 3.1; 1P.85/2005 du 15 mars 2005, consid. 2). En l'espèce, la Cour d'appel a éliminé quelques-unes des prestations énumérées par l'avocat des demandeurs; elle devait donc motiver sa décision et un paragraphe de son arrêt est dûment consacré à ce sujet. Il convient de souligner que la liste, en tant qu'elle fondait un calcul précis du montant des dépens, devait être transmise à l'adverse partie aussi dans l'éventualité où aucune prestation n'était retranchée.
Parce que la défenderesse condamnée aux dépens n'a pas pu prendre position sur la liste de frais, l'arrêt attaqué doit être annulé dans la mesure où il fixe le montant des dépens d'appel; la cause doit être renvoyée à l'autorité précédente pour qu'elle statue à nouveau sur ce montant, après qu'elle aura transmis la liste à la partie débitrice et recueilli ses observations.
4.
Compte tenu que la défenderesse A._ SA obtient partiellement gain de cause, il y a lieu à répartition de l'émolument judiciaire et des dépens de l'instance fédérale. L'émolument sera fixé à 4'000 fr.; il doit être acquitté à raison de 3'000 fr. par la défenderesse et de 1'000 fr. par les demandeurs. La charge des dépens, évaluée à 5'000 fr. tant pour la défenderesse que pour les demandeurs, doit être répartie dans la même proportion; après compensation à due concurrence, celle-là doit verser 2'500 fr. à ceux-ci.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, le montant des dépens d'appel fixé dans l'arrêt attaqué est annulé et la cause est renvoyée à la Cour d'appel pour statuer à nouveau sur ce montant.
2.
Les parties acquitteront un émolument judiciaire de 4'000 fr., à raison de 3'000 fr. à la charge de A._ SA et de 1'000 fr. à la charge des demandeurs, solidairement entre ceux-ci.
3.
A._ SA versera une indemnité de 2'500 fr. aux demandeurs, créanciers solidaires, à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Fribourg.
Lausanne, le 25 février 2015
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
Le greffier : Thélin